Spring的数据库编程:jdbcTemplate
Posted nuist__NJUPT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring的数据库编程:jdbcTemplate相关的知识,希望对你有一定的参考价值。
Spring的数据库编程:jdbcTemplate
- 数据库编程是互联网编程的基础,Spring框架为开发者提供了JDBC模板模式,即jdbcTemplate,它可以用于简化很多代码,但是在实际工作中jdbcTemplate并不常用
- 在工作中更多的时候使用Hibernate框架和Mybatis框架进行数据库编程
- 使用Spring JDBC完成数据库编程主要使用到core包和dataSource包,
- core包是核心功能包,dataSource是访问数据源的工具类包
- 如果使用Spring JDBC操作数据库,需要进行配置
- 使用update可以实现增删改操作,使用query可以实现查询操作
下面通过一个实例演示Spring JDBC的使用过程。
开发环境:IDEA+mysql
1-在MySQL中创建数据库spring,并在该数据库中创建表user,编码方式选择utf8,如下所示
2-在IDEA中创建一个名称为ch17的spring项目,导入相关jar包,所需jar包如下,(注:有些jar包是本次开发不需要的,系统也自动下载导入了)
3-在src目录下创建配置文件applicationContext1.xml,在该配置文件中配置数据源和JDBC模板。
<?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 https://www.springframework.org/schema/context/spring-context.xsd">
<!--指定需要扫描的包和子包,使注解生效-->
<context:component-scan base-package="com.ch17"/>
<!--配置数据源-->
<bean id = "dataSource" class = "org.springframework.jdbc.datasource.DriverManagerDataSource">
<!--MySQL数据驱动-->
<property name="url" value="jdbc:mysql://localhost:3306/spring?characterEncoding=utf8"/>
<!--连接数据库的用户名-->
<property name = "username" value = "root"/>
<!--连接数据库的密码-->
<property name = "password" value = "123456"/>
</bean>
<!--配置JDBC模板-->
<bean id = "jdbcTemplate" class = "org.springframework.jdbc.core.JdbcTemplate">
<property name = "dataSource" ref = "dataSource"/>
</bean>
</beans>
3-在src目录下创建com.ch17包,在该报中创建实体类,该类的属性与数据表user的字段一致。
public class MyUser {
private Integer uid ;
private String uname, usex ;
public void setUid(Integer uid) {
this.uid = uid;
}
public Integer getUid(){
return uid ;
}
public void setUname(String uname){
this.uname = uname ;
}
public String getUname(){
return uname ;
}
public void setUsex(String usex){
this.usex = usex ;
}
public String getUsex(){
return usex ;
}
public String toString(){
return "myUser [uid=" + uid + ", uname=" + uname + ", usex=" + usex + "]" ;
}
}
4-在com.ch17包中创建TestDao接口和实现类TestDaoImpl,在实现类中使用JDBC模块JdbcTeplate访问数据库,并将该类注解为Repository(“testDao”),使得注解生效,需要在配置文件中扫描
import java.util.List;
public interface TestDao {
/**
*
* @param sql 数据库
* @param param 参数素组
* @return
*/
public int update(String sql, Object [] param);
public List<MyUser> query(String sql, Object [] param) ;
}
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository("testDao")
public class TestDaoImpl implements TestDao {
//使用配置文件中的JDBC模板
@Autowired
private JdbcTemplate jdbcTemplate ;
@Override
public int update(String sql, Object[] param) {
return jdbcTemplate.update(sql,param) ;
}
@Override
public List<MyUser> query(String sql, Object[] param) {
RowMapper <MyUser> rowMapper = new BeanPropertyRowMapper<>(MyUser.class) ;
return jdbcTemplate.query(sql,rowMapper,param);
}
}
5-在com.ch5包中创建测试类TestSpringJDBC,在主方法中调用数据访问层Dao中的方法,岁数据表user进行操作
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.List;
public class TestSpringJDBC {
public static void main(String[] args){
//初始化Spring容器,加载配置文件
ApplicationContext appCon = new ClassPathXmlApplicationContext("applicationContext1.xml") ;
//获取增强后的目标对象
TestDao td = (TestDao) appCon.getBean("testDao") ;
String insertSql = "insert into user values(?,?,?)" ;
//param数组的值与insertSql语句的?一一对应
Object [] param1 = {1,"王国栋1", "男"} ;
Object [] param2 = {2,"刘亦菲2", "女"} ;
Object [] param3 = {3,"胡歌3", "男"} ;
Object [] param4 = {4,"李沁4", "女"} ;
//添加用户
td.update(insertSql,param1) ;
td.update(insertSql,param2) ;
td.update(insertSql,param3) ;
td.update(insertSql,param4) ;
//查询用户
String selectSql = "select*from user" ;
List <MyUser> list = td.query(selectSql,null) ;
for(MyUser mu : list){
System.out.println(mu) ;
}
}
}
6-运行结果如下:
7-可以在MySQL的管理软件Navicat Premium中看到插入的表user
以上是关于Spring的数据库编程:jdbcTemplate的主要内容,如果未能解决你的问题,请参考以下文章