Spring框架学习第六讲(JDBCTemplate实现CRUD操作)
2017-03-20 14:45
330 查看
一、 Spring 中的JDBCTemplate对JDBC进行了封装
1.1 添加相关的JAR包
spring-jdbc,spring-tx(事务),mysql驱动包1.2 创建对象,设置数据库信息
DriverManagerDataSource source = new DriverManagerDataSource(); source.setDriverClassName("com.mysql.jdbc.Driver"); source.setUrl("jdbc:mysql://localhost:3306/my?useUnicode=true&characterEncoding=UTF-8"); source.setUsername("root"); source.setPassword("");
1.3 创建JDBCTemplate对象,设置数据库
JdbcTemplate template = new JdbcTemplate(source);1.4 调用JDBCTemplate对象里面的方法实现操作
String sql = "insert into grade value(?,?,?)"; int row = template.update(sql,5,"C++高级班","数据库操作"); //返回的是数据库影响行数
1.5 实现增删改操作
package test;
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
public class TestJDBC {
JdbcTemplate template;
public void upload(){
//设置数据库信息
DriverManagerDataSource source = new DriverManagerDataSource(); source.setDriverClassName("com.mysql.jdbc.Driver"); source.setUrl("jdbc:mysql://localhost:3306/my?useUnicode=true&characterEncoding=UTF-8"); source.setUsername("root"); source.setPassword("");
//创建JDBCTemplate对象,设置数据源
template = new JdbcTemplate(source);
}
@Test//添加操作
public void add(){
upload();
//调用JDBCTemplate对象里面的方法实现操作
String sql = "insert into grade value(?,?,?)";//创建SQL语句
int row = template.update(sql,5,"C++高级班","数据库操作");
System.out.println(row);
//返回的是数据库影响行数
}
@Test
//更新操作
public void update(){
upload();
String sql = "update grade set GNAME=? where GID=?";
int row = template.update(sql,"C#",5);
System.out.println(row);
}
@Test//删除操作
public void delete(){
upload();
String sql = "delete from grade where GID=?";
int row = template.update(sql,5);
System.out.println(row);
}
}
1.6 实现查询功能
1.6.1 查询单个
@Test//获取表中数据个数操作 public void count(){ upload(); String sql = "select count(*) from grade"; int row = template.queryForObject(sql, Integer.class); System.out.println(row); }
1.6.2 查询单个对象
将数据库中的查询结果转换成类1. 创建Grade类
package com.spring.jdbc; public class Grade { private int gid; private String gName; private String gDesc; public String getgDesc() { return gDesc; } public void setgDesc(String gDesc) { this.gDesc = gDesc; } public String getgName() { return gName; } public void setgName(String gName) { this.gName = gName; } public int getGid() { return gid; } public void setGid(int gid) { this.gid = gid; } @Override public String toString() { // TODO Auto-generated method stub return "[GName:]"+gName+",[GDesc:]"+gDesc; } }
2. 查询单个对象方法
queryForObject(String sql, RowMapper rowMapper, Object… args)
第一个参数是SQL语句;
第二个参数是Spring包中RowMapper接口的实现类,需要自己写该接口的实现类,自己将结果集做数据的封装;
第三个参数是SQL语句中的变量;
@Test public void getObject(){ template = upload(); String sql = "select * from grade where gid=?"; Grade grade = template.queryForObject(sql, new MyRowMapper(), 4); System.out.println(grade); }
3. 写RowMapper接口的实现类
从结果集里面把数据得到
把得到的数据封装到对象中
返回对象
class MyRowMapper implements RowMapper<Grade>{ @Override public Grade mapRow(ResultSet arg0, int arg1) throws SQLException { Grade grade = new Grade(); grade.setgName(arg0.getString("GName")); grade.setgDesc(arg0.getString("GDesc")); return grade; } }
4. 输出结果
[GName:]C++二班,[GDesc:]C++软件开发二班
1.7 获取对象列表
query(String sql, RowMapper rowMapper) throws DataAccessException* 第一个参数是SQL语句;
* 第二个参数是Spring包中RowMapper接口的实现类,需要自己写该接口的实现类,自己将结果集做数据的封装;
* 第三个参数是SQL语句中的变量(可省略);
1.获取对象List方法
@Test//获取对象List public void ObjectList(){ upload(); String sql = "select * from grade"; List<Grade> list = template.query(sql, new MyRowMapper()); System.out.println(list); } }
2. 写RowMapper接口的实现类(同上)
3. 输出结果
[[GName:]java一班,[GDesc:]JAVA软件开发一班, [GName:]java二班,[GDesc:]JAVA软件开发二班, [GName:]C++二班,[GDesc:]C++软件开发二班, [GName:]C++二班,[GDesc:]C++软件开发二班]
4. 测试类的整体代码
package test;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import com.spring.jdbc.Grade;
public class TestJDBC {
JdbcTemplate template;
public void upload(){
//设置数据库信息
DriverManagerDataSource source = new DriverManagerDataSource(); source.setDriverClassName("com.mysql.jdbc.Driver"); source.setUrl("jdbc:mysql://localhost:3306/my?useUnicode=true&characterEncoding=UTF-8"); source.setUsername("root"); source.setPassword("");
//创建JDBCTemplate对象,设置数据源
template = new JdbcTemplate(source);
}
@Test//添加操作
public void add(){
upload();
//调用JDBCTemplate对象里面的方法实现操作
String sql = "insert into grade value(?,?,?)";//创建SQL语句
int row = template.update(sql,5,"C++高级班","数据库操作");
System.out.println(row);
//返回的是数据库影响行数
}
@Test
//更新操作
public void update(){
upload();
String sql = "update grade set GNAME=? where GID=?";
int row = template.update(sql,"C#",5);
System.out.println(row);
}
@Test//删除操作
public void delete(){
upload();
String sql = "delete from grade where GID=?";
int row = template.update(sql,5);
System.out.println(row);
}
@Test//获取表中数据个数操作 public void count(){ upload(); String sql = "select count(*) from grade"; int row = template.queryForObject(sql, Integer.class); System.out.println(row); }
@Test
public void getObject(){
upload();
String sql = "select * from grade where gid=?";
Grade grade = template.queryForObject(sql, new MyRowMapper(), 4);
System.out.println(grade);
}
}
class MyRowMapper implements RowMapper<Grade>{
@Override
public Grade mapRow(ResultSet arg0, int arg1) throws SQLException {
Grade grade = new Grade();
grade.setgName(arg0.getString("GName"));
grade.setgDesc(arg0.getString("GDesc"));
return grade;
}
}
相关文章推荐
- J:\java资料全套\基础+就业\Spring框架2016版视频\day03视频\08-jdbcTemplate实现crud操作(查询list集合).java
- Struts学习总结(九)---使用Struts2实现用户信息的CRUD操作(三:修改操作)
- Spring框架学习第五讲(AOP操作——注解实现)
- Spring框架针对dao层的jdbcTemplate操作crud之query查询数据操作 —— 查询表,返回结果为对象的list集合
- Struts学习总结(九)---使用Struts2实现用户信息的CRUD操作(四:删除操作)
- spring-jdbctemplate对数据库的crud操作---idea实现
- Spring框架针对dao层的jdbcTemplate操作crud之query查询数据操作
- 【Mybatis学习总结二】Mybatis操作数据表的CRUD实现
- day3_spring04_jdbcTemplate实现crud操作(修改和删除操作)
- jdbcTemplate实现crud操作(查询介绍)
- 使用spring框架的JdbcTemplate实现对Oracle数据库的简单操作实例
- Struts学习总结(七)---使用Struts2实现用户信息的CRUD操作(一:查询操作)
- JDBC学习笔记 -- day04 使用jdcb实现CRUD操作
- JdbcTemplate实现CRUD操作
- Spring框架针对dao层的jdbcTemplate操作crud之delete删除数据库操作 Spring相关Jar包下载
- Spring框架针对dao层的jdbcTemplate操作crud之query查询数据操作 —— 查询表,返回结果为某一个对象。
- Spring框架针对dao层的jdbcTemplate操作crud之update修改数据库操作
- JdbcTemplate实现CRUD操作
- jdbcTemplate实现crud操作(添加、删除、更改操作)
- 学习笔记:Android SQLite,并实现SQLite基本CRUD操作的Demo