Spring_Spring与DAO_Spring的Jdbc模板
一、导入Jar包

二、定义实体类与DB表
public class Student {
private Integer id;
private String name;
private int age;
public Student() {
super();
}
public Student( String name, int age) {
super();
this.name = name;
this.age = age;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
Student

三、定义Service
import java.util.List; import com.jmu.beans.Student;
//service业务
public interface IStudentService {
void addStudent(Student student);
void removeById(int id);
void modifyStudent(Student student); List<String> findAllStudentsNames();
String findStudentNameById(int id); List<Student> findAllStudents();
Student findStudentById(int id);
}
IStudentService
import java.util.List; import com.jmu.beans.Student;
import com.jmu.dao.IStudentDao; public class StudentServiceImpl implements IStudentService {
private IStudentDao dao; public void setDao(IStudentDao dao) {
this.dao = dao;
} @Override
public void addStudent(Student student) {
// TODO Auto-generated method stub
dao.insertStudent(student); } @Override
public void removeById(int id) {
// TODO Auto-generated method stub
dao.deleteById(id);
} @Override
public void modifyStudent(Student student) {
// TODO Auto-generated method stub
dao.updateStudent(student);
} @Override
public List<String> findAllStudentsNames() {
// TODO Auto-generated method stub
return dao.selectAllStudentsNames();
} @Override
public String findStudentNameById(int id) {
// TODO Auto-generated method stub
return dao.selectStudentNameById(id);
} @Override
public List<Student> findAllStudents() {
// TODO Auto-generated method stub
return dao.selectAllStudents();
} @Override
public Student findStudentById(int id) {
// TODO Auto-generated method stub
return dao.selectStudentById(id);
} }
StudentServiceImpl
四、定义Dao
import java.util.List; import com.jmu.beans.Student; //Dao增删改查
public interface IStudentDao {
void insertStudent(Student student);
void deleteById(int id);
void updateStudent(Student student); List<String> selectAllStudentsNames();
String selectStudentNameById(int id); List<Student> selectAllStudents();
Student selectStudentById(int id);
}
IStudentDao
import java.util.List;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import com.jmu.beans.Student;
public class StudentDaoImpl extends JdbcDaoSupport implements IStudentDao {
@Override
public void insertStudent(Student student) {
// TODO Auto-generated method stub
String sql="insert into student(name,age) value(?,?)";
this.getJdbcTemplate().update(sql, student.getName(),student.getAge());
}
@Override
public void deleteById(int id) {
// TODO Auto-generated method stub
String sql="delete from student where id=?";
this.getJdbcTemplate().update(sql, id);
}
@Override
public void updateStudent(Student student) {
// TODO Auto-generated method stub
String sql="update student set name=?,age=? where id=?";
this.getJdbcTemplate().update(sql, student.getName(),student.getAge(),student.getId());
}
@Override
public List<String> selectAllStudentsNames() {
// TODO Auto-generated method stub
String sql="select name from student";
return this.getJdbcTemplate().queryForList(sql, String.class);
}
@Override
public String selectStudentNameById(int id) {
// TODO Auto-generated method stub
String sql="select name from student where id=?";
return this.getJdbcTemplate().queryForObject(sql, String.class,id);
}
@Override
public List<Student> selectAllStudents() {
// TODO Auto-generated method stub
String sql="select id,name,age from student";
return this.getJdbcTemplate().query(sql, new StudentRowMapper());
}
@Override
public Student selectStudentById(int id) {
// TODO Auto-generated method stub
String sql="select id,name,age from student where id=?";
return this.getJdbcTemplate().queryForObject(sql, new StudentRowMapper(),id);
}
}
StudentDaoImpl
import java.sql.ResultSet;
import java.sql.SQLException; import org.springframework.jdbc.core.RowMapper; import com.jmu.beans.Student; public class StudentRowMapper implements RowMapper<Student> { //rs:当查询出总的结果集后,框架会自动遍历这个结果集,每一次遍历的一行数据,都会被存放到这个方法的rs参数中,也就是说,这里的rs代表的是一行数据,并非所有查询结果,换个角度,只要能执行这个方法,就说明这里的rs不会是空的
@Override
public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
// TODO Auto-generated method stub、
Student student=new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setAge(rs.getInt("age"));
return student;
} }
StudentRowMapper
五、相应的注册
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--注册数据源:Spring内置连接池 -->
<!-- <bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property
name="url" value="jdbc:mysql://127.0.0.1:3306/test1"/> <property name="username"
value="root"/> <property name="password" value="123456"/> </bean> --> <!--注册数据源:DBCP -->
<!-- <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property
name="url" value="jdbc:mysql://127.0.0.1:3306/test1"/> <property name="username"
value="root"/> <property name="password" value="123456"/> </bean> -->
<!--注册数据源:C3P0 -->
<!-- <bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl"
value="jdbc:mysql://127.0.0.1:3306/test1"/> <property name="user" value="root"/>
<property name="password" value="123456"/> </bean> -->
<!--注册数据源:C3P0 -->
<bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
</bean> <!-- 注册属性文件:方式一 -->
<!-- <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties"></property> </bean> -->
<context:property-placeholder location="classpath:jdbc.properties" /> <!--注册JdbcTemplate(模板) -->
<!-- <bean id="myJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="myDataSource" /> </bean>
注册Dao
<bean id="studentDao" class="com.jmu.dao.StudentDaoImpl">
<property name="jdbcTemplate" ref="myJdbcTemplate" />
</bean> -->
<!--注册Dao -->
<bean id="studentDao" class="com.jmu.dao.StudentDaoImpl">
<property name="dataSource" ref="myDataSource" /> </bean> <!-- 注册Service -->
<bean id="studentService" class="com.jmu.service.StudentServiceImpl">
<property name="dao" ref="studentDao" />
</bean>
</beans>
applicationContext
六、从属性文件读取DB四要素
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/test1
jdbc.user=root
jdbc.password=123456
jdbc.properties
七、定义测试类
import java.util.List; import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import com.jmu.beans.Student;
import com.jmu.service.IStudentService; public class MyTest { private IStudentService service; @Before
public void before() {
//创建容器对象
String resource = "applicationContext.xml";
ApplicationContext ac=new ClassPathXmlApplicationContext(resource);
service = (IStudentService) ac.getBean("studentService");
} @Test
public void test01() {
Student student=new Student("张三", 23);
service.addStudent(student);
} @Test
public void test02() {
service.removeById(2);
} @Test
public void test03() {
Student student=new Student("王意义", 23);
student.setId(3);
service.modifyStudent(student);
}
@Test
public void test04() {
List<String> names = service.findAllStudentsNames();
System.out.println(names);
}
@Test
public void test05() {
String names = service.findStudentNameById(3);
System.out.println(names);
} @Test
public void test06() {
List<Student> students=service.findAllStudents();
for (Student student : students) {
System.out.println(student);
}
} @Test
public void test07() {
Student student=service.findStudentById(3);
System.out.println(student);
} }
MyTest
Spring_Spring与DAO_Spring的Jdbc模板的更多相关文章
- [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 开涛spring3(7.2) - 对JDBC的支持 之 7.2 JDBC模板类
7.2 JDBC模板类 7.2.1 概述 Spring JDBC抽象框架core包提供了JDBC模板类,其中JdbcTemplate是core包的核心类,所以其他模板类都是基于它封装完成的,JDB ...
- spring框架总结(04)----介绍的是Spring中的JDBC模板
1.1 Jdbc模板概述 它是spring框架中提供的一个对象,是对原始Jdbc API对象的简单封装.spring框架为我们提供了很多的操作模板类,入下图所示: 我们今天的主角在spring-jd ...
- Spring中的JDBC模板类入门
1.Spring框架中提供了很多持久层的模板类来简化编程,使用模板类编写程序会变的简单 2.提供了JDBC模板,Spring框架提供的 *JdbcTemplate类 3.Spring框架可以整合Hib ...
- Spring的jdbc模板3:完成CURD操作
测试类代码如下 package zcc.spring_jdbc.demo2; import java.sql.ResultSet; import java.sql.SQLException; impo ...
- Spring的jdbc模板2:使用开源的连接池
上篇简要介绍了如何在spring中配置默认的连接池和jdbc模板,这篇来介绍开源的连接池配置与属性引入 C3P0连接池配置: 引入jar包 配置c3p0连接池 <?xml version=&qu ...
- Spring的jdbc模板1
Spring是EE开发的一站式框架,有EE开发的每一层解决方案.Spring对持久层也提供了解决方案:ORM模块和jdbc模块,ORM模块在整合其他框架的时候使用 Spring提供了很多的模板用于简化 ...
- java框架之Spring(3)-JDBC模板使用&事务管理
下面内容使用到的 jar 包下载 JDBC模板使用 入门 1.导包,如要导入 Spring 的基本开发包.数据库驱动包.Spring 提供的 JDBC 模板包,如下: 2.测试: @Test publ ...
- Java学习笔记43(Spring的jdbc模板)
在之前的学习中,我们执行sql语句,需要频繁的开流,关流比较麻烦,为了更加的简化代码,我们使用Spring 的jdbc模板jdbcTemplate来简化我们的代码量:需要导入的包有: 我们在之前的dr ...
随机推荐
- Cannot complete the install because one or more required items could not be found
弄了一天的subclipse也没装上,郁闷~~~~~~~~ 无论采用本地安装还是站点安装都不行,在安装的时候显示错误: Cannot complete the install because one ...
- Java数据持久层框架 MyBatis之背景知识二
对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...
- mybatis if条件查询 及<号的问题
摘录自:http://flt95.blog.163.com/blog/static/12736128920136185841551/ <if test="p=='1'"> ...
- LindDotNetCore~Polly组件对微服务场景的价值
回到目录 Polly是一个开源框架,在github上可以找到,被善友大哥收录,也是.App vNext的一员! App vNext:https://github.com/App-vNext GitHu ...
- 如何在同一台机器上安装多个MySQL的实例
转自:'http://www.cnblogs.com/shangzekai/p/4375271.html 最近由于工作的需要,需要在同一台机器上搭建两个MySQL的实例,(注:已经存在了一个3306的 ...
- ECLIPS-S测井系统下的仪器挂接 [CV模块]
常见简写 简写 全拼 含义 CV Calibration and Verification 刻度和校验 CP Primary Calibration 主刻度 VP Primary Verify 主校验 ...
- Servlet--ServletRequest接口,ServletResponse接口
ServletRequest接口 定义 public interface ServletRequest 定义一个 Servlet 引擎产生的对象,通过这个对象, Servlet 可以获得客户端请求的数 ...
- linkin大话面向对象--构造器详解
对象的产生格式:类名称 对象名 = new 类名称(); 因为有(),所以是方法,实际上它就是构造方法,并且是非私有的构造方法.如:CellPhone cp = new CellPhone( ...
- MySQL刷新事务日志级别设置
标签(linux): mysql 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 # if set to 1 , InnoDB will flush (fsync ...
- GO开发:用go写个日志监控系统
日志收集系统架构 1.项目背景 a. 每个系统都有日志,当系统出现问题时,需要通过日志解决问题 b. 当系统机器比较少时,登陆到服务器上查看即可满足 c. 当系统机器规模巨大,登陆到机器上查看几乎不现 ...