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 ...
随机推荐
- iView的表单table
// html<div class="exam-list"> <Table :columns="columns7" :data="d ...
- 一、最新Kafka单节点部署+测试 完整
每次学一个东西从基础的开始,循序渐进. 不急不躁,路还很长. 所有教程都是学习汪文君大神的kafka教程的. 一.部署 这里选的kafka版本是 0.10.2.1 下载连接 https://dow ...
- hbase GC优化
编辑配置文件 编辑 hbase-env.sh export HBASE_OPTS="$HBASE_OPTS -XX:+UseCompressedOops -XX:+UseParNewGC ...
- Codeforces 348E 树的中心点的性质 / 树形DP / 点分治
题意及思路:http://ydc.blog.uoj.ac/blog/12 在求出树的直径的中心后,以它为根,对于除根以外的所有子树,求出子树中的最大深度,以及多个点的最大深度的lca,因为每个点的最长 ...
- Codeforces 348D DP + LGV定理
题意及思路:https://www.cnblogs.com/chaoswr/p/9460378.html 代码: #include <bits/stdc++.h> #define LL l ...
- JAVA二分插入排序
- 2018CSS特效集锦牛逼
https://tympanus.net/codrops/2018/12/27/awesome-demos-from-2018/
- Vuex白话教程第六讲:Vuex的管理员Module(实战篇)
写在前面 这一讲是 Vuex 基础篇的最后一讲,也是最为复杂的一讲.如果按照官方来的话,对于新手可能有点难以接受,所以想了下,决定干脆多花点时间,用一个简单的例子来讲解,顺便也复习一下之前的知识点. ...
- Python中Class中的object是什么意思?
https://stackoverflow.com/a/2588667/8189120 In short, it sets free magical ponies. In long, Python 2 ...
- JavaIO流之字节流
什么是字节? 所谓字节(Byte),是计算机数据存储的一种计量单位.一个二进制位称为比特(bit),8个比特组成一个字节,也就是说一个字节可以用于区分256个整数(0~255).由此我们可以知道,字节 ...