智慧屏幕App开发如何引领未来教育与商业展示的变革?
371
2023-06-16
Spring JDBCTemplate原理及使用实例
一:JDBCTemplate简介
Spring为各种持久化技术提供了简单操作的模板和回调API:
ORM持久化技术
模板类
原生JDBC
org.springframework.jdbc.core.JdbcTemplate
Hibernate5.0
org.springframework.orm.hibernate5.HibernateTemplate
IBatis(MyBatis)
org.springframework.orm.ibatis.SqlMapClientTemplate
JPA
org.springfrmaework.orm.jpa.JpaTemplate
其中,对于原生的JDBC编程,Spring提供了JDBCTemplate,对jdbc操作进行了一系列封装,使得jdbc编程更加简单。
二:引入jar包或添加依赖
数据库驱动包则按需引入。
三:创建数据库连接配置文件
jdbc.user=root
jdbc.password=123456
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc\:......
四:Spring托管
在Spring配置文件中,注入dataSource,从配置文件中获取内容进行bean的初始化。
&lJJFbaPnt;property name="driverClass" value="${jdbc.driverClass}">
五:在代码中使用
1:通过Spring配置文件启动IOC容器
//启动IoC容器
ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
2:在IOC容器获取jdbcTemplate实例
//获取IoC容器中JdbcTemplate实例
JdbcTemplate jdbcTemplate=(JdbcTemplate) ctx.getBean("jdbcTemplate");
3:使用jdbcTemplate调用方法执行数据库操作http://
JdbcTemplate主要提供以下五大方法:
execute方法:可以用于执行任何SQL语句。
update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;
query方法及queryForXXX方法:用于执行查询相关语句;
call方法:用于执行存储过程、函数相关语句。
3.1)通过 update 进行插入
String sql="insert into user (name,deptid) values (?,?)";
int count= jdbcTemplate.update(sql, new Object[]{"caoyc",3});
3.2)通过 update 进行修改
String sql="update user set name=?,deptid=? where id=?";
jdbcTemplate.update(sql,new Object[]{"zhh",5,51});
3.3)通过 update 进行删除
String sql="delete from user where id=?";
jdbcTemplate.update(sql,51);
3.4)批量插入、修改、删除
String sql="insert into user (name,deptid) values (?,?)";
List
batchArgs.add(new Object[]{"caoyc",6});
batchArgs.add(new Object[]{"zhh",8});
batchArgs.add(new Object[]{"cjx",8});
jdbcTemplate.batchUpdate(sql, batchArgs);
六:在DAO层使用
数据库操作一般结合ORM进行使用。
1:首先定义实体类
package com.proc;
public class User {
private Integer id;
private String name;
private Integer deptid;
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 Integer getDeptid() {
return deptid;
}
public void setDeptid(Integer deptid) {
this.deptid = deptid;
}
public String toString() {
return "User [id=" + id + ", name=" + name + ", deptid=" + deptid + "]";
}
}
2:然后定义该实体类的DAO类
package com.proc;
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;
@Repository
public class UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public User get(int id){
String sql="select id,name,deptid from user where id=?";
RowMapper
return jdbcTemplate.queryForObject(sql, rowMapper,id);
}
}
在DAO类中,定义对应实体实例的增删查改操作方法,在方法体中,使用jdbcTemplate。
3:在service层,通过dao实例调用方法,执行数据操作。
UserDao userDao=(UserDao) ctx.getBean("userDao");
System.out.println(userDao.get(53));
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~