JdbcTemplate实现CRUD操作
来源:互联网 发布:英语学霸软件 编辑:程序博客网 时间:2024/05/22 16:38
------------------siwuxie095
JdbcTemplate 实现 CRUD 操作
1、JdbcTemplate 是 Spring 的 JDBC 模板,对 JDBC 进行了封装
2、Spring 对不同持久化技术的支持如下:
ORM 持久化技术
模板类
JDBC
JdbcTemplate
Hibernate
HibernateTemplate
iBatis
SqlMapClientTemplate
MyBatis
SqlSessionTemplate
JPA
JpaTemplate
Spring 为各种持久化技术都提供了模板类,对它们进行封装,
以简化编程
参考链接:
http://blog.csdn.net/u011225629/article/details/47143177
3、导入jar 包(共9 个包)
(1)导入核心 jar 包和日志相关的 jar 包
(2)导入JdbcTemplate 的 jar 包
(3)导入MySQL 的 JDBC 驱动包
mysql-connector-java下载链接:
https://dev.mysql.com/downloads/connector/j/
4、具体步骤
(1)设置数据库连接信息
(2)创建 JdbcTemplate 对象,设置数据源
(3)调用 JdbcTemplate 对象的方法实现 CRUD 操作
5、在MySQL 中手动创建数据库和表
数据库名:spring_db,表名:user,字段:username、password
6、具体实现
(1)添加操作
AddDemo.java:
package com.siwuxie095.jdbc;
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
/**
*添加操作
*/
public class AddDemo {
/**
*手动加上 @Test以进行单元测试(将自动导入 JUnit 4的 jar包)
*
*选中方法名,右键->Run As->JUint Test
*/
@Test
publicvoid add() {
//设置数据库连接信息
DriverManagerDataSource dataSource=new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
//或使用 jdbc:mysql:///spring_db代替,省略 localhost:3306
dataSource.setUrl("jdbc:mysql://localhost:3306/spring_db");
dataSource.setUsername("root");
dataSource.setPassword("8888");
//创建 JdbcTemplate对象,设置数据源
JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);
//使用 jdbcTemplate的方法实现添加操作
//
//创建 sql语句
String sql="insert into user values(?,?)";
//调用 update()方法实现添加,返回值是 int型,
//创建以接收,表示在数据库中影响的行数
int row=jdbcTemplate.update(sql,"小明","1234");
System.out.println(row);
}
}
(2)修改操作
UpdateDemo.java:
package com.siwuxie095.jdbc;
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
/**
*修改操作
*/
public class UpdateDemo {
@Test
publicvoid update() {
//设置数据库连接信息
DriverManagerDataSource dataSource=new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
//或使用 jdbc:mysql:///spring_db代替,省略 localhost:3306
dataSource.setUrl("jdbc:mysql://localhost:3306/spring_db");
dataSource.setUsername("root");
dataSource.setPassword("8888");
//创建 JdbcTemplate对象,设置数据源
JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);
//使用 jdbcTemplate的方法实现修改操作
//
//创建 sql语句
String sql="update user set password=? where username=?";
//调用 update()方法实现修改,返回值是 int型,
//创建以接收,表示在数据库中影响的行数
int row=jdbcTemplate.update(sql,"1314","小明");
System.out.println(row);
}
}
(3)删除操作
DeleteDemo.java:
package com.siwuxie095.jdbc;
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
/**
*删除操作
*/
public class DeleteDemo {
@Test
publicvoid delete() {
//设置数据库连接信息
DriverManagerDataSource dataSource=new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
//或使用 jdbc:mysql:///spring_db代替,省略 localhost:3306
dataSource.setUrl("jdbc:mysql://localhost:3306/spring_db");
dataSource.setUsername("root");
dataSource.setPassword("8888");
//创建 JdbcTemplate对象,设置数据源
JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);
//使用 jdbcTemplate的方法实现删除操作
//
//创建 sql语句
String sql="delete from user where username=?";
//调用 update()方法实现删除,返回值是 int型,
//创建以接收,表示在数据库中影响的行数
int row=jdbcTemplate.update(sql,"小明");
System.out.println(row);
}
}
(4)查询操作
QueryDemo.java:
package com.siwuxie095.jdbc;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
/**
*查询操作
*
* JdbcTemplate通过接口 RowMapper实现查询,但
* JdbcTemplate没有提供该接口的实现类,所以,要
*得到不同类型的数据,需要自己进行封装
*
*查询操作分为三类:
*
* (1)查询,返回一个值
* (2)查询,返回一个对象
* (3)查询,返回一个 List集合
*
*/
public class QueryDemo {
/**
* (1)查询,返回一个值
*/
@Test
publicvoid queryValue() {
//设置数据库连接信息
DriverManagerDataSource dataSource=new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
//或使用 jdbc:mysql:///spring_db代替,省略 localhost:3306
dataSource.setUrl("jdbc:mysql://localhost:3306/spring_db");
dataSource.setUsername("root");
dataSource.setPassword("8888");
//创建 JdbcTemplate对象,设置数据源
JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);
//使用 jdbcTemplate的方法得到记录数
//
//创建 sql语句
String sql="select count(*) from user";
//调用 queryForObject()方法,传入 sql语句和返回类型的 class
int count=jdbcTemplate.queryForObject(sql, Integer.class);
System.out.println(count);
}
/**
* (2)查询,返回一个对象
*/
@Test
publicvoid queryObject() {
//设置数据库连接信息
DriverManagerDataSource dataSource=new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
//或使用 jdbc:mysql:///spring_db代替,省略 localhost:3306
dataSource.setUrl("jdbc:mysql://localhost:3306/spring_db");
dataSource.setUsername("root");
dataSource.setPassword("8888");
//创建 JdbcTemplate对象,设置数据源
JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);
//使用 jdbcTemplate的方法得到对象
//
//创建 sql语句
String sql="select * from user where username=?";
//调用 queryForObject()方法,传入 sql语句、
//接口 RowMapper的实现类的对象、要查询的值
User user=jdbcTemplate.queryForObject(sql,new MyRowMapper(), "小明");
System.out.println(user);
}
/**
* (3)查询,返回一个 List集合
*/
@Test
publicvoid queryList() {
//设置数据库连接信息
DriverManagerDataSource dataSource=new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
//或使用 jdbc:mysql:///spring_db代替,省略 localhost:3306
dataSource.setUrl("jdbc:mysql://localhost:3306/spring_db");
dataSource.setUsername("root");
dataSource.setPassword("8888");
//创建 JdbcTemplate对象,设置数据源
JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);
//使用 jdbcTemplate的方法得到 List集合
//
//创建 sql语句
String sql="select * from user";
//调用 query()方法,传入 sql语句
//和接口 RowMapper的实现类的对象
List<User> list=jdbcTemplate.query(sql,new MyRowMapper());
System.out.println(list);
}
}
//多个类,在同一个文件中,最多有一个是 public权限的
class MyRowMapperimplements RowMapper<User> {
@Override
public User mapRow(ResultSet rs,int rowNum) throws SQLException {
//从结果集中拿数据,并封装到对象中
String username=rs.getString("username");
String password=rs.getString("password");
User user=new User();
user.setUsername(username);
user.setPassword(password);
return user;
}
}
User.java:
package com.siwuxie095.jdbc;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
publicvoid setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
publicvoid setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return"User [username=" + username +", password=" + password + "]";
}
}
【made by siwuxie095】
- JdbcTemplate实现CRUD操作
- spring jdbcTemplate实现crud操作
- jdbcTemplate实现crud操作(查询介绍)
- jdbctemplate之crud操作
- jdbcTemplate实现crud操作(添加、删除、更改操作)
- Spring框架学习第六讲(JDBCTemplate实现CRUD操作)
- jdbcTemplate的CRUD操作总结
- Spring 利用jdbcTemplate 实现CRUD
- jdbcTemplate实现查询操作
- MyBatis实现CRUD操作
- HibernateTemplate实现CRUD操作
- Spring JdbcTemplate实现数据库操作
- SQLiteDatabase的CRUD操作实现
- J:\java资料全套\基础+就业\Spring框架2016版视频\day03视频\08-jdbcTemplate实现crud操作(查询list集合).java
- hibernate 入门操作----实现crud 操作
- hibernate 配置--入门操作----实现crud 操作
- day3_spring03_jdbcTemplate实现crud操作(添加操作)
- JdbcTemplate系列(二)----实战CRUD
- 2.2_字符串String
- RabbitMQ Tutorials简介
- 训练赛第二场总结
- Windows下为使用Mingw环境的Qt编译opencv
- [bzoj1491] [NOI2007]社交网络
- JdbcTemplate实现CRUD操作
- 关于大数据报告收获
- 关注民生民情
- Pymol(1.8.6)作图技巧之cartoon和surface镶嵌模型
- QQ侧滑菜单的实现和拓展-DrawerLayout
- HDU 3336 Count the strings(KMP+DP)
- 第一篇
- 关注民生民情
- Struts2学习第六天:Result总结