Spring_Spring与DAO_Spring的Jdbc模板

一、导入Jar包

 

二、定义实体类与DB表

 1 public class Student {
 2     private Integer id;
 3     private String name;
 4     private int age;
 5 
 6     
 7     public Student() {
 8         super();
 9     }
10 
11     public Student( String name, int age) {
12         super();
13         this.name = name;
14         this.age = age;
15     }
16 
17     public Integer getId() {
18         return id;
19     }
20 
21     public void setId(Integer id) {
22         this.id = id;
23     }
24 
25     public String getName() {
26         return name;
27     }
28 
29     public void setName(String name) {
30         this.name = name;
31     }
32 
33     public int getAge() {
34         return age;
35     }
36 
37     public void setAge(int age) {
38         this.age = age;
39     }
40 
41     @Override
42     public String toString() {
43         return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
44     }
45 
46 }
Student

 

三、定义Service

 1 import java.util.List;
 2 
 3 import com.jmu.beans.Student;
 4 //service业务
 5 public interface IStudentService {
 6    void addStudent(Student student);
 7    void removeById(int id);
 8    void modifyStudent(Student student);
 9    
10    List<String> findAllStudentsNames();
11    String findStudentNameById(int id);
12    
13    List<Student> findAllStudents();
14    Student findStudentById(int id);
15 }
IStudentService
 1 import java.util.List;
 2 
 3 import com.jmu.beans.Student;
 4 import com.jmu.dao.IStudentDao;
 5 
 6 public class StudentServiceImpl implements IStudentService {
 7     private IStudentDao dao;
 8 
 9     public void setDao(IStudentDao dao) {
10         this.dao = dao;
11     }
12 
13     @Override
14     public void addStudent(Student student) {
15         // TODO Auto-generated method stub
16       dao.insertStudent(student);
17         
18     }
19 
20     @Override
21     public void removeById(int id) {
22         // TODO Auto-generated method stub
23      dao.deleteById(id);
24     }
25 
26     @Override
27     public void modifyStudent(Student student) {
28         // TODO Auto-generated method stub
29       dao.updateStudent(student);
30     }
31 
32     @Override
33     public List<String> findAllStudentsNames() {
34         // TODO Auto-generated method stub
35         return dao.selectAllStudentsNames();
36     }
37 
38     @Override
39     public String findStudentNameById(int id) {
40         // TODO Auto-generated method stub
41         return dao.selectStudentNameById(id);
42     }
43 
44     @Override
45     public List<Student> findAllStudents() {
46         // TODO Auto-generated method stub
47         return dao.selectAllStudents();
48     }
49 
50     @Override
51     public Student findStudentById(int id) {
52         // TODO Auto-generated method stub
53         return dao.selectStudentById(id);
54     }
55 
56 }
StudentServiceImpl

四、定义Dao

 1 import java.util.List;
 2 
 3 import com.jmu.beans.Student;
 4 
 5 //Dao增删改查
 6 public interface IStudentDao {
 7     void insertStudent(Student student);
 8     void deleteById(int id);
 9     void updateStudent(Student student);
10 
11     List<String> selectAllStudentsNames();
12     String selectStudentNameById(int id);
13 
14     List<Student> selectAllStudents();
15     Student selectStudentById(int id);
16 }
IStudentDao
 1 import java.util.List;
 2 
 3 import org.springframework.jdbc.core.support.JdbcDaoSupport;
 4 
 5 import com.jmu.beans.Student;
 6 
 7 public class StudentDaoImpl extends JdbcDaoSupport implements IStudentDao {
 8 
 9     @Override
10     public void insertStudent(Student student) {
11         // TODO Auto-generated method stub
12         String sql="insert into student(name,age) value(?,?)";
13         this.getJdbcTemplate().update(sql, student.getName(),student.getAge());
14     }
15 
16     @Override
17     public void deleteById(int id) {
18         // TODO Auto-generated method stub
19       String sql="delete from student where id=?";
20       this.getJdbcTemplate().update(sql, id);
21     }
22 
23     @Override
24     public void updateStudent(Student student) {
25         // TODO Auto-generated method stub
26      String  sql="update student set name=?,age=? where id=?";
27      this.getJdbcTemplate().update(sql, student.getName(),student.getAge(),student.getId());
28      
29     }
30 
31     @Override
32     public List<String> selectAllStudentsNames() {
33         // TODO Auto-generated method stub
34         String sql="select name from student";
35         return this.getJdbcTemplate().queryForList(sql, String.class);
36     }
37 
38     @Override
39     public String selectStudentNameById(int id) {
40         // TODO Auto-generated method stub
41         String sql="select name from student where id=?";
42         return this.getJdbcTemplate().queryForObject(sql, String.class,id);
43     }
44 
45     @Override
46     public List<Student> selectAllStudents() {
47         // TODO Auto-generated method stub
48         String sql="select id,name,age from student";
49         return this.getJdbcTemplate().query(sql, new StudentRowMapper());
50     }
51 
52     @Override
53     public Student selectStudentById(int id) {
54         // TODO Auto-generated method stub
55         String sql="select id,name,age from student where id=?";
56         return this.getJdbcTemplate().queryForObject(sql, new StudentRowMapper(),id);
57     }
58 
59 }
StudentDaoImpl
 1 import java.sql.ResultSet;
 2 import java.sql.SQLException;
 3 
 4 import org.springframework.jdbc.core.RowMapper;
 5 
 6 import com.jmu.beans.Student;
 7 
 8 public class StudentRowMapper implements RowMapper<Student> {
 9 
10     //rs:当查询出总的结果集后,框架会自动遍历这个结果集,每一次遍历的一行数据,都会被存放到这个方法的rs参数中,也就是说,这里的rs代表的是一行数据,并非所有查询结果,换个角度,只要能执行这个方法,就说明这里的rs不会是空的
11     @Override
12     public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
13         // TODO Auto-generated method stub、
14         Student student=new Student();
15         student.setId(rs.getInt("id"));
16         student.setName(rs.getString("name"));
17         student.setAge(rs.getInt("age"));
18         return student;
19     }
20 
21 }
StudentRowMapper

 

五、相应的注册

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
 4     xsi:schemaLocation="
 5         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
 6         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
 7 
 8     <!--注册数据源:Spring内置连接池 -->
 9     <!-- <bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
10         <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property 
11         name="url" value="jdbc:mysql://127.0.0.1:3306/test1"/> <property name="username" 
12         value="root"/> <property name="password" value="123456"/> </bean> -->
13 
14     <!--注册数据源:DBCP -->
15     <!-- <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
16         <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property 
17         name="url" value="jdbc:mysql://127.0.0.1:3306/test1"/> <property name="username" 
18         value="root"/> <property name="password" value="123456"/> </bean> -->
19     <!--注册数据源:C3P0 -->
20     <!-- <bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> 
21         <property name="driverClass" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" 
22         value="jdbc:mysql://127.0.0.1:3306/test1"/> <property name="user" value="root"/> 
23         <property name="password" value="123456"/> </bean> -->
24     <!--注册数据源:C3P0 -->
25     <bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
26         <property name="driverClass" value="${jdbc.driver}" />
27         <property name="jdbcUrl" value="${jdbc.url}" />
28         <property name="user" value="${jdbc.user}" />
29         <property name="password" value="${jdbc.password}" />
30     </bean>
31 
32     <!-- 注册属性文件:方式一 -->
33     <!-- <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
34         <property name="location" value="classpath:jdbc.properties"></property> </bean> -->
35     <context:property-placeholder location="classpath:jdbc.properties" />
36 
37     <!--注册JdbcTemplate(模板) -->
38     <!-- <bean id="myJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> 
39         <property name="dataSource" ref="myDataSource" /> </bean> 
40         注册Dao 
41         <bean id="studentDao" class="com.jmu.dao.StudentDaoImpl"> 
42           <property name="jdbcTemplate" ref="myJdbcTemplate" /> 
43         </bean> -->
44     <!--注册Dao -->
45     <bean id="studentDao" class="com.jmu.dao.StudentDaoImpl">
46         <property name="dataSource" ref="myDataSource" />
47 
48     </bean>
49 
50     <!-- 注册Service -->
51     <bean id="studentService" class="com.jmu.service.StudentServiceImpl">
52         <property name="dao" ref="studentDao" />
53     </bean>
54 </beans>
applicationContext

六、从属性文件读取DB四要素

1 jdbc.driver=com.mysql.jdbc.Driver
2 jdbc.url=jdbc:mysql://127.0.0.1:3306/test1
3 jdbc.user=root
4 jdbc.password=123456
jdbc.properties

 七、定义测试类

 1 import java.util.List;
 2 
 3 import org.junit.Before;
 4 import org.junit.Test;
 5 import org.springframework.context.ApplicationContext;
 6 import org.springframework.context.support.ClassPathXmlApplicationContext;
 7 
 8 import com.jmu.beans.Student;
 9 import com.jmu.service.IStudentService;
10 
11 public class MyTest {
12 
13     private IStudentService service;
14 
15     @Before
16     public void before() {
17         //创建容器对象
18         String resource = "applicationContext.xml";
19         ApplicationContext ac=new ClassPathXmlApplicationContext(resource);  
20         service = (IStudentService) ac.getBean("studentService");
21     }
22     
23     @Test
24     public void test01() {
25         Student student=new Student("张三", 23);
26         service.addStudent(student);
27     }
28     
29     @Test
30     public void test02() {
31         service.removeById(2);        
32     }
33 
34     @Test
35     public void test03() {
36         Student student=new Student("王意义", 23);
37         student.setId(3);
38         service.modifyStudent(student);
39     }
40     @Test
41     public void test04() {
42         List<String> names = service.findAllStudentsNames();
43         System.out.println(names);
44     }
45     @Test
46     public void test05() {
47         String names = service.findStudentNameById(3);
48         System.out.println(names);
49     }
50     
51     @Test
52     public void test06() {
53         List<Student> students=service.findAllStudents();
54         for (Student student : students) {
55             System.out.println(student);
56         }
57     }
58     
59     @Test
60     public void test07() {
61         Student student=service.findStudentById(3);
62         System.out.println(student);
63     }
64     
65     
66 }
MyTest

 

转载于:https://www.cnblogs.com/hoje/p/8484005.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值