Spring:DataSource注入到dao

  使用DOS命令创建数据库(Mysql)

    1. CREATE DATABASE book DEFAULT CHARACTER SET utf8;

      CREATE DATABASE book DEFAULT CHARACTER SET utf8;
    2. 使用该数据库
      use book
    3. 建表(name:书名;zuozhe:作者;cbs:出版社)
      create table myBook(
      name varchar(20),    
      zuozhe varchar(20),
      cbs varchar(50)
      );

  使用IDEA建立Maven项目,导入相关依赖

 <dependencies>
2  <!--Spring相关依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.13.RELEASE</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<!--Mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.41</version>
</dependency> </dependencies>

  创建Spring的XML文件 :appSpring

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> </beans>

  创建entity类

 package entity;

 public class Book {
private String name; //书名
private String zuozhe; //作者
private String cbs; //出版社 public Book(){ } public Book(String name, String zuozhe, String cbs) {
this.name = name;
this.zuozhe = zuozhe;
this.cbs = cbs;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getZuozhe() {
return zuozhe;
} public void setZuozhe(String zuozhe) {
this.zuozhe = zuozhe;
} public String getCbs() {
return cbs;
} public void setCbs(String cbs) {
this.cbs = cbs;
} @Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", zuozhe='" + zuozhe + '\'' +
", cbs='" + cbs + '\'' +
'}';
}
}

  创建dao接口

 package dao;

 import entity.Book;

 import java.util.List;

 public interface BookDao {
void insert(Book book);
List<Book> queryAll() ;
}

  实现dao接口:配置DataSource

  1. 选择DriverManagerDataSource实现,此实现是没有连接池功能

  2. 选择dbcp 里面的DataSource实现,这个有连接池功能

  3. 选择c3p0里面的DataSource实现,这个有连接池功能

  4. 选择Alibaba里面的实现,这个有连接池功能

 package dao;

 import entity.Book;

 import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List; public class BookDaoImpl implements BookDao { private DataSource dataSource; public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
} public Connection getConnection() {
Connection connection = null;
try {
//获取连接对象、XML的配置信息
connection = dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
} public void insert(Book book) {
Connection connection = getConnection();
String sql = "insert into myBook values(?,?,?)";
try {
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1,book.getName());
preparedStatement.setString(2,book.getZuozhe());
preparedStatement.setString(3,book.getCbs());
preparedStatement.executeUpdate();
System.out.println("成功添加一条数据");
connection.close();
} catch (SQLException e) {
e.printStackTrace();
} } public List<Book> queryAll() {
return null;
}
}

  编写service

 package service;

 import dao.StudentDao;
import entity.Student; public class StudentService {
private StudentDao studentDao; public StudentDao getStudentDao() {
return studentDao;
} public void setStudentDao(StudentDao studentDao) {
this.studentDao = studentDao;
} public void insert(Student student){
studentDao.insert(student);
}
}

  在XML配置Mysql链接信息,把到dao和service注入Spring,让Spring管理

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--Mysql配置信息-->
<!--Spring提供的一个DataSource的实现:就是DriverManagerDataSource-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/book"/>
<property name="username" value="root"/>
<property name="password" value="888888"/>
</bean>
<!--依赖上面的dataSource-->
<bean id="bookDao" class="dao.BookDaoImpl" >
<property name="dataSource" ref="dataSource"></property>
</bean> <bean id="bookService" class="service.BookService">
<property name="bookDao" ref="bookDao"></property>
</bean>
<!-- <bean id="dao" class="dao.BookDaoImpl" autowire="byType" />
<bean id="service" class="service.BookService" autowire="byType"/>--> </beans>

   Main测试

 package controller;

 import entity.Book;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import service.BookService; public class Main {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("appSpring.xml");
BookService bookService = applicationContext.getBean("bookService",BookService.class);
Book book = new Book("静待花开","王文韦","南方出版");
bookService.insert(book);
Book book2 = new Book("三国","罗贯中","中央出版");
bookService.insert(book2); }
}

Spring:DataSource注入到dao的更多相关文章

  1. Spring的三种通过XML实现DataSource注入方式

    Spring的三种通过XML实现DataSource注入方式: 1.使用Spring自带的DriverManagerDataSource 2.使用DBCP连接池 3.使用Tomcat提供的JNDI

  2. java后端开发三年!你还不了解Spring 依赖注入,凭什么给你涨薪

    前言 前两天和一个同学吃饭的时候同学跟我说了一件事,说他公司有个做了两年的人向他提出要涨薪资,他就顺口问了一个问题关于spring依赖注入的,那个要求涨薪的同学居然被问懵了...事后回家想了想这一块确 ...

  3. Spring 依赖注入方式详解

    平常的Java开发中,程序员在某个类中需要依赖其它类的方法. 通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理. Spring提出了依赖注入的思想,即依赖类不由 ...

  4. Spring的注入问题

    作下笔记,Spring的注入问题[多个实例问题] 解决方案如下: package student.life.support.platform.service.impl; import javax.an ...

  5. Spring依赖注入 --- 简单使用说明

    Spring依赖注入 --- 简单使用说明 本文将对spring依赖注入的使用做简单的说明,enjoy your time! 1.使用Spring提供的依赖注入 对spring依赖注入的实现方法感兴趣 ...

  6. Spring依赖注入 --- 模拟实现

    Spring依赖注入 --- 模拟实现 面向接口编程,又称面向抽象编程, 数据库如果发生更改,对应的数据访问层也应该改变多写几个实现,需要用谁的时候在service里new谁就可以了面向抽象编程的好处 ...

  7. 模拟Spring依赖注入

    通过读取xml文件,利用反射动态加载类和方法,其实就是spring的注入机制模拟,可以清晰的看出整个运行流程 1.配置文件 applicationContext.xml <beans> & ...

  8. Spring、Spring依赖注入与编码剖析Spring依赖注入的原理

    Spring依赖注入 新建PersonIDao 和PersonDao底实现Save方法: public interface PersonIDao { public void save(); } pub ...

  9. Spring依赖注入原理

    接触过spring 的同学应该都知道依赖注入,依赖注入又称控制反转,其内涵就是,将创建某个bean的控制权力,由原来需要引用这个bean的bean转移(反转)到外部的spring IOC容器,由IOC ...

随机推荐

  1. zabbix主动模式设置

    zabbix客户端发数据给服务端分为主被动两种模式,主动模式是zabbix客户端主动向服务端发送数据,被动模式是被动等待服务端来取数据. 主动模式: 客户端每隔一段时间主动向服务端发起连接请求--&g ...

  2. 12-vim-撤销和删除命令-02-删除文本

    删除文本 命令 英文 功能 x cut 删除光标所在字符 d(移动命令) delete 删除移动命令对应的内容 dd delete 删除光标所在行 D delete 从光标位置删除至行尾 注: 如果使 ...

  3. 欧拉函数(Euler_Function)

    一.基本概述在数论,对正整数n,欧拉函数varphi(n)是少于或等于n的数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为Euler's totient function.φ函数.欧拉商 ...

  4. js转义符

    \0 :null(\u0000) \b :后退键(\u0008) \f :换页符(\u000C) \n :换行符(\u000A) \r :回车键(\u000D) \t :制表符(\u0009) \v ...

  5. Shell 变量操作

  6. Shell 脚本的建立与执行

  7. Ubuntu 14.04 Sublime Text3 Java编译运行(最简单的方法)

    Sublime,结果发现只能编译,无法直接运行,于是就在网上搜解决方法,发现大部分方法都是告诉你要进入Java.sublime-packag这个文件,然后再修改JavaC.sublime-build, ...

  8. 关于KiCAD

    关于KiCAD 使用背景 一直以来公司都在用AD作为EDA软件,但是最近公司频繁收到律师函,所以决定找一款开源的软件来代替AD,目前市场上开源的只找到了KiCAD和Easy EDA(中文版立创EDA) ...

  9. Android jniLibs下目录详解(.so文件)

    http://www.jianshu.com/p/b758e36ae9b5 最近又研究了一下,参考了一下:三星/联发科等处理器规格表 更新时间:2017年5月手机CPU架构体系分类及各大厂商 PS:我 ...

  10. new和delete,p150

    创建对象,不带()的称为不提供显式初始化,()为空的称为值初始化. 内置类型和没定义默认ctor的类型,不带()未初始化,带()初始化为0.但有默认构造函数的,带不带()都是利用默认构造函数初始化. ...