Spring:DataSource注入到dao
Spring:DataSource注入到dao
使用DOS命令创建数据库(Mysql)
CREATE DATABASE book DEFAULT CHARACTER SET utf8;
CREATE DATABASE book DEFAULT CHARACTER SET utf8;
- 使用该数据库
use book
- 建表(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
选择DriverManagerDataSource实现,此实现是没有连接池功能
选择dbcp 里面的DataSource实现,这个有连接池功能
选择c3p0里面的DataSource实现,这个有连接池功能
选择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的更多相关文章
- Spring的三种通过XML实现DataSource注入方式
Spring的三种通过XML实现DataSource注入方式: 1.使用Spring自带的DriverManagerDataSource 2.使用DBCP连接池 3.使用Tomcat提供的JNDI
- java后端开发三年!你还不了解Spring 依赖注入,凭什么给你涨薪
前言 前两天和一个同学吃饭的时候同学跟我说了一件事,说他公司有个做了两年的人向他提出要涨薪资,他就顺口问了一个问题关于spring依赖注入的,那个要求涨薪的同学居然被问懵了...事后回家想了想这一块确 ...
- Spring 依赖注入方式详解
平常的Java开发中,程序员在某个类中需要依赖其它类的方法. 通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理. Spring提出了依赖注入的思想,即依赖类不由 ...
- Spring的注入问题
作下笔记,Spring的注入问题[多个实例问题] 解决方案如下: package student.life.support.platform.service.impl; import javax.an ...
- Spring依赖注入 --- 简单使用说明
Spring依赖注入 --- 简单使用说明 本文将对spring依赖注入的使用做简单的说明,enjoy your time! 1.使用Spring提供的依赖注入 对spring依赖注入的实现方法感兴趣 ...
- Spring依赖注入 --- 模拟实现
Spring依赖注入 --- 模拟实现 面向接口编程,又称面向抽象编程, 数据库如果发生更改,对应的数据访问层也应该改变多写几个实现,需要用谁的时候在service里new谁就可以了面向抽象编程的好处 ...
- 模拟Spring依赖注入
通过读取xml文件,利用反射动态加载类和方法,其实就是spring的注入机制模拟,可以清晰的看出整个运行流程 1.配置文件 applicationContext.xml <beans> & ...
- Spring、Spring依赖注入与编码剖析Spring依赖注入的原理
Spring依赖注入 新建PersonIDao 和PersonDao底实现Save方法: public interface PersonIDao { public void save(); } pub ...
- Spring依赖注入原理
接触过spring 的同学应该都知道依赖注入,依赖注入又称控制反转,其内涵就是,将创建某个bean的控制权力,由原来需要引用这个bean的bean转移(反转)到外部的spring IOC容器,由IOC ...
随机推荐
- spring基于xml的事务控制
opm配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http: ...
- svnversion - 为工作代码产生一个紧缩的 (compat) 版本号
SYNOPSIS 总览 svnversion wc_path [trail_url] OVERVIEW 概述 Subversion 是一个版本控制系统,允许保存旧版本的文件和目录 (通常是源代码),保 ...
- 前端学习(十九)jquery(笔记)
jquery:库,框架 js,别人封装成的js 官网:http://jquery.com/ -----------------------------------1.7 ----------jq 1. ...
- 2017 ACM/ICPC Asia Regional Shenyang Online 12 card card card
题目大意: 给出两个长度为n的序列A,B,从1开始依次加Ai,减Bi,分数为第一次为当前和为负数的位置以前的Ai之和(左闭右开区间).同时有一种操作可以把当前的A1,B1移动到序列最后,注意序列A的各 ...
- vue 同时使用过渡和动画
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- SQL优化(三)—— 索引、explain分析
SQL优化(三)—— 索引.explain分析 一.什么是索引 索引是一种排好序的快速查找的数据结构,它帮助数据库高效的查询数据 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据 ...
- 浅谈无线h5开发
最近一直在做h5的项目,对h5开发有了自己的理解.首先h5开发并不是指的html5的开发,而是指无线端的web开发,至于为什么叫h5开发,我觉得一方面是因为html5近几年还是挺受关注,另一方面h5在 ...
- Hadoop-HDFS的伪分布式和完全分布式集群搭建
Hadoop-HDFSHDFS伪分布式集群搭建步骤一.配置免密登录 ssh-keygen -t rsa1一句话回车到底 ssh-copy-id -i ~/.ssh/id_rsa.pub root@no ...
- 如何加大jvm的内存和tomcat的内存
如何扩大jvm的内存和tomcat的内存,如何让项目没有用的值得到及时的回收和清理,java项目 最佳答案 修改 tomcat 的内存方式:修改 catalina.bat在set JAVA_OPT ...
- QT--QSocketNotifier类介绍
QSocketNotifier 用来监听系统文件操作,将操作转换为Qt事件进入系统的消息循环队列.并调用预先设置的事件接受函数,处理事件. 一共存在3类事件:read,write,exceptio ...