Java jdbctemplate赋值_Spring 之 Spring JdbcTemplate的使用
1.准备
源码下载链接
https://share.weiyun.com/Iax0hI64
0. 数据表
create table user(
uid int not null PRIMARY key AUTO_INCREMENT,
username VARCHAR(20) not null,
password VARCHAR(20) not null
)ENGINE=INNODB DEFAULT CHARSET=utf8;
insert into user values(1,"zhenqk","12345");
insert into user values(2,"sun","12345");
insert into user values(3,"小白","123");
insert into user values(4,"zhen","12345");
1.导入依赖
junit
junit
4.11
test
org.springframework
spring-context
5.2.1.RELEASE
org.springframework
spring-aspects
5.2.1.RELEASE
.org.springframework
spring-jdbc
5.2.1.RELEASE
pom
com.alibaba
druid
1.1.9
mysql
mysql-connector-java
5.1.47
2.db.properties
druid.driver=com.mysql.jdbc.Driver
druid.url=jdbc:mysql://localhost:3306/kdb2
druid.username=root
druid.password=root
3.applicationContext.xml
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
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
http://www.springframework.org/schema/aop
https://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
https://www.springframework.org/schema/tx/spring-tx.xsd ">
2.实体类User.java
main/java/com/ccut/pojo/User.java
public class User {
private int uid;
private String username;
private String password;
@Override
public String toString() {
return "User{" +
"uid=" + uid +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
public User() {
}
public User(int uid, String username, String password) {
this.uid = uid;
this.username = username;
this.password = password;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
3.测试方法使用
import java.util.List;
public class Test {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicatinContext.xml");
JdbcTemplate jdbcTemplate1 = context.getBean("jdbcTemplate", JdbcTemplate.class);
@org.junit.Test
public void testDB(){
System.out.println(jdbcTemplate1);
}
/**
* DML语句
* 使用的是共同的update方法,只需要替换不同的sql即可
*/
@org.junit.Test
public void testUpdate(){
String sql = "update user set username=?,password=? where uid=?";
//参数赋值按照占位符顺序
jdbcTemplate1.update(sql,"jeck","abc",3);
}
/**
* DQL语句
*/
@org.junit.Test
public void testqueryObject(){//获取到一条记录通过一个Java中实体类对象进行接收
String sql = "select uid,username,password from user where uid=?";
//将数据库查询出来的条数据通过RowMapper对象进行封装为泛型类型
RowMapper rowMapper = new BeanPropertyRowMapper(User.class);
//参数赋值按照占位符顺序
User user = jdbcTemplate1.queryForObject(sql, rowMapper, 2);
System.out.println(user);
}
@org.junit.Test
public void testqueryValue(){//获取到一个独立的数据
String sql = "select count(uid) from user";
//参数赋值按照占位符顺序
int count = jdbcTemplate1.queryForObject(sql, Integer.class);
System.out.println(count);
}
@org.junit.Test
public void testqueryList(){//获取到多条记录,通过list集合进行接收查询数据
String sql = "select uid,username,password from user";
RowMapper rowMapper = new BeanPropertyRowMapper(User.class);
//参数赋值按照占位符顺序
List userList = jdbcTemplate1.query(sql, rowMapper);
System.out.println(userList);
}
// 测试 事务
@org.junit.Test
public void testUserDao0(){
UserDao userDaoImpl = context.getBean("userDaoImpl", UserDao.class);
User u=new User(1,"王振强","12345");
Boolean b=userDaoImpl.testUpdate(u);
System.out.println(b);
}
}
4. 与dao结合使用
1.dao层
IUserDao.java
public interface UserDao {
/**
* 获取一条记录
*/
User testqueryObject(Integer uid);
Boolean testUpdate(User user);
}
Impl.UserDaoImpl.java
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public User testqueryObject(Integer uid) {
String sql = "select uid,username,password from user where uid=?";
//将数据库查询出来的条数据通过RowMapper对象进行封装为泛型类型
RowMapper rowMapper = new BeanPropertyRowMapper(User.class);
//参数赋值按照占位符顺序
return jdbcTemplate.queryForObject(sql, rowMapper, uid);
}
@Override
@Transactional(isolation=Isolation.REPEATABLE_READ,propagation = Propagation.REQUIRES_NEW)
public Boolean testUpdate(User user){
String sql = "update user set username=?,password=? where uid=?";
//参数赋值按照占位符顺序
// 异常代码 int o=3/0;
int a=jdbcTemplate.update(sql,user.getUsername(),user.getPassword(),user.getUid());
if(a>0){
return true;
}
return false;
}
}
2. test类
/**
* 测试在dao层使用spring中JDBC模块
*/
@org.junit.Test
public void testUserDao(){
UserDao userDaoImpl = context.getBean("userDaoImpl", UserDao.class);
User user = userDaoImpl.testqueryObject(2);
System.out.println(user);
}
Java jdbctemplate赋值_Spring 之 Spring JdbcTemplate的使用相关推荐
- jdbctemplate oracle xml文件,Spring JDBCTemplate使用JNDI数据源
xml配置:1 2 class="org.springframework.jdbc.datasource.DriverManagerDataSource"> ...
- Spring JdbcTemplate示例
Spring JdbcTemplate示例 Spring JdbcTemplate是Spring JDBC包中最重要的类. 目录[ 隐藏 ] 1 Spring JdbcTemplate 1.1 Spr ...
- java 用properties文件配置spring数据源,用spring的JdbcTemplate的queryForList查数据
使用的jar包: ojdbc14.jar spring-2.5.jar commons-dbcp-1.4.jar 目录结构ress(source folder)->conff(package)下 ...
- spring JdbcTemplate 在项目中的浅层(5个使用场景)封装
导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景, 在做项目的时候,用的JPA ,有些复杂查询,比如报表用原生的JdbcTemplate ,很不方便,传参也不方便 ...
- Spring JdbcTemplate方法详解
2019独角兽企业重金招聘Python工程师标准>>> Spring JdbcTemplate方法详解 标签: springhsqldbjava存储数据库相关sql 2012-07- ...
- Spring JdbcTemplate的queryForList(String sql , ClassT elementType)易错使用--转载
原文地址: http://blog.csdn.net/will_awoke/article/details/12617383 一直用ORM,今天用JdbcTemplate再次抑郁了一次. 首先看下这个 ...
- 转载:为什么使用ibatis而不用spring jdbcTemplate
第一:ibatis仅仅是对jdbc薄薄的一层封装,完全不丧失sql的灵活性 第二:ibatis所有的sql都可以放在配置文件中,这样有利于sql的集中管理,特别是在sql tuning是很容易把得到所 ...
- 【SSM框架系列】Spring - JdbcTemplate声明式事务
JdbcTemplate概述 以往使用jdbc时,每次都需要自己获取PreparedStatement,执行sql语句,关闭连接等操作.操作麻烦冗余,影响编码的效率. Spring把对数据库的操作在j ...
- 数据库操作技术--Spring jdbcTemplate
一丶jdbcTemplate是什么 jdbcTemplate是Spring提供的一种操作数据库的技术,是对Jdbc的封装.语法非常接近DBUtils. 使用JdbcTemplate可以直接操作数据库, ...
最新文章
- 【轻松学排序算法】眼睛直观感受几种常用排序算法(转)
- 131. 分割回文串(回溯算法)
- 强烈推荐10 个机器学习教程!(含视频链接)
- Java笔记07-List、Set、数据结构、Collections
- vue 条件渲染 v-if | v-show
- Java 输出当前目录
- java 流 中文_Java IO流之中文乱码
- hihoCoder 1513: 小Hi的烦恼(五维偏序+bitset)
- 使用java实现敏感词汇过滤功能
- MATLAB 排序函数(先按第一列排序(主排序)然后再按第二列排序(次排序))
- 网页中常说的‘焦点’是什么意思
- 查看源文件默认编辑器打开
- A智慧城市,新型信息化城市形态
- 南大小百合 计算机,是我从南大小百合里搜集的。已经编辑过了
- C标准库-va_list
- 【web前端】前端性能优化指南,还不来看看?
- 中山マミ - 咲く未来
- 小甲鱼Python学习笔记之魔法方法
- 【计算机网络:自顶向下方法】期末复习总结(USTC 2020秋 zq班)
- 换了工作城市,社保和公积金的转移
热门文章
- jsonp+ajax实现浏览器跨域通信
- 实现工控机4U断电后自动重启功能
- 串口ic读卡器源码-c#代码(2)续上
- thinkphp-条件判断-范围判断-NOTBETWEEN
- PHP机器学习库php-ml的简单测试和使用
- metasploit篇-01
- Objective-c(1)
- PowerShell在Exchange2010下快速创建动态通讯组
- mysql etc rc.local_CentOS 7 开机启动自定义配置文件:/etc/rc.local 不执行解决办法 | IT运维网...
- png文件头_文件上传总结