1.JdbcTemplate
在Spring中,JdbcTemplate是最常被使用的类,它为用户程序提供了许多便利的数据库操作方法,比如查询、更新等。JdbcTemplate是core包的核心类,它替我们完成了资源的创建及释放工作,从而简化了对JDBC的使用。
1)执行SQL语句
一旦获得一个DataSource和一个JdbcTemplate,我们就可以使用JdbcTemplate提供的丰富功能实现我们的操作。下面创建一张表:
public void execute(){
JdbcTemplate jdbc = new JdbcTemplate(dataSource);
jdbc.execute("create table username(id integer,username varchar(20),password varchar(20),email varchar(50))");
}
2)执行单表查询
比如返回一个汇总(count)结果或者从返回行结果中取得指定列的值,我们使用queryForInt()、queryForLong()或者queryForObject()方法。queryForObject方法用来将返回的JDBC类型对象转换成指定的Java对象,如下例:
public int getCount(){
JdbcTemplate jdbc = new JdbcTemplate(dataSource);
return count=jdbc.queryForInt("select count(*)from user");
}
public String getUsername(){
JdbcTemplate jdbc = new JdbcTemplate(dataSource);
return name=(String) jdbc.queryForObject("select name from username",String.class);
}
3)执行条件查询
在调用queryForObject()进行查询时,需要先使用回调方法创建一个RowMapper类型变量,在执行查询时输入该回调变量,并输入查询的参数数组,如下所示:
public User findUser(long id){
String sql="select id,username,password,email from user where id=?";
RowMapper mapper = new RowMapper(){
public Object mapRow(ResultSet rs,int rowNum)throws SQLException{
User user = new User();
user.setId(is.getLong("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
return user;
}
};
JdbcTemplate jdbc = new JdbcTemplate(dataSource);
return (User)jdbc.queryForObject(sql,mapper,new Object[]{Long.vlaueof(id)});
}
4)返回查询列表
返回表中的所有记录:
public List getUserList(){
JdbcTemplate jdbc = new JdbcTemplate(dataSource);
List rows = jdbc.queryForList("select id,username from user");
return rows;
}
返回的结果集类似下面这种形式:
[{id=1,username=admin},{id=2,username=test}]
如果返回的结果集部止两个字段,则可以使用回调的方式将每一行记录转换为一个JavaBean对象。如下所示,使用query函数进行查询,并进行了行的回调。在回调中对每一个结果集转换为User对象:
public boolean getUserList(String username,String password){
JdbcTemplate jdbc = new JdbcTemplate(dataSource);
List userList=jdbc.query("select*from user"),
new RowMapper(){
public Object mapRow(ResultSet rs,int rowNum)throws Exception{
User user = new User();
user.setId(is.getLong("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
return user;
}
});
return userList;
}
5)执行更新语句
可以使用update()来执行一个更新的SQL语句,其中的问号表示的参数使用数组表示,如下所示:
public void updateUsername(int id,String name){
JdbcTemplate jdbc = new JdbcTemplate(dataSource);
jdbc.update("update mytable set name=?where id=?",new Object[]{name,new Long(id)});
分享到:
相关推荐
(1)使用Spring JDBC实现书店的购书过程,即有如下一个BookShopDao接口,编写BookShopDaoImp类实现该接口中的所有方法,并通过JUnit测试这些方法。 (2)(2) 在BookShopDao中添加一个purchase购书方法,其操作流程是...
spring的jdbc工具类,对数据库的操作,对数据库进行增删改查的操作
Spring JDBC Spring的JDBC模块负责数据库资源管理和错误处理,大大简化了开发人员对数据库的操作,使得开发人员可以从繁琐的数据库操作中解脱出来,从而将更多的精力投入到编写业务逻辑当中。 Spring JdbcTemplate...
(1)使用Spring JDBC实现书店的购书过程,即有如下一个BookShopDao接口,编写BookShopDaoImp类实现该接口中的所有方法,并通过JUnit测试这些方法。 public interface BookShopDao { //根据书号获取书的单价 //...
现在的数据层的开发,大多会使用...但是在一些极端的场景下往往原生的jdbc方式操作数据库更灵活,性能更高。由于部分场景下MyBatis或JPA之类无法满足我的需求,所以我打算自己封装一套查数据库的工具类。 文章地址: ...
创建一个java工程,名为springJDBC,包和类组织如下图所示。 测试资源文件夹放配置文件业务层具体业务逻辑(登录、注册、选课等等)领域对象放实体类持久层负责数据的访问和操作 测试 资源文件夹 放配置文件 业务层 ...
2、基于spring jdbc的上层封装,底层jdbc操作基于JdbcTemplate,对于使用spring jdbc的人会有一点价值,比较简洁的封装可以节省很多重复劳动,具体节省多少可以看看example; 3、实现一套简单的ORM(直接使用...
实现学生的增删改查和浏览,可以使用控制台模式,显示一个操作菜单,数据库的访问,使用Spring JDBC模块来实现。 2、学生类的设计可以大家根据自己的理解设计,一般包含:学号、姓名、年龄、成绩等。
使用Spring提供的JdbcTemplate模板类实现对数据库的更新和查询操作、使用JdbcTemplate实现具体的DAO类、使用支持具名参数的JDBC模板类对数据库进行操作
下载下来后操作步骤如下: 1、用Myeclipse打开; 2、不同的数据库更换不同的jars包数据库驱动, 3、不同的数据库,相应的修改applicationContext.xml, driverClassName,username,password,url; 4、运行DeptDao中的...
JdbcUtils使用指南JdbcUtils是JDBC的工具类,封装了JDBC连接获取,语句结构,资源释放等繁琐步骤,对外提供简洁的数据库查询和更新操作接口。使用前准备添加maven仓库地址< repositories> < repository> < id>byx-...
eclipse 直接导出的项目 Spring MVC 的一个DEMO jiaolongzhi作品 采用 Spring 3.0 MVC 框架 JSTL+EL 语句输出界面 ...一种是 Spring 封装的JDBC和 操作 (teacher表) 一种是 proxool 提供的方式(student表)
1.在mysql中创建一个Person数据库,在数据库中创建一个person表,有id,姓名,性别、家许地址等字段;创建日志表,保存“操作人”、"操作方法"、"操作中必要的参数"(若有多个,可以封装在Bean中,如何获取,请参考...
工具支持所有实现 JDBC 规范的数据库;默认集成了Oracle、SqlServer、MySQL、PostgreSql 数据库驱动 jar 包,其他数据库可以自己添加依赖。 工具默认集成了以 MyBatis 作为持久化层的模板,如果需要 JPA 相关等模板...
这个jar文件包含对Spring对JDBC数据访问进行封装的所有类。 (8) spring-orm.jar 这个jar文件包含Spring对DAO特性集进行了扩展,使其支持 iBATIS、JDO、OJB、TopLink,因为Hibernate已经独立成包了,现在不包含在...
JDBC框架中最主要的类是JdbcTemplate,可以在org.springframework.jdbc.core包中找到它。JdbcTemplate类在内部已经处理完了数据库资源的建立和释放
这篇文章主要介绍了Spring5源码之JDBC,基于上一篇Spring5之JDBC使用案例来一步步剖析jdbcTemplate操作数据库的源码。需要的朋友可以参考一下。 1、save/update功能实现 在UserServiceImpl中jdbcTemplate的初始化是...
【第七章】 对JDBC的支持 之 7.3 关系数据库操作对象化 ——跟我学spring3 【第七章】 对JDBC的支持 之 7.4 Spring提供的其它帮助 ——跟我学spring3 【第七章】 对JDBC的支持 之 7.5 集成Spring JDBC及最佳...
mySQL实现数据库的增删查改操作。 需求: 对单一账户进行创建、修改、删除、查询操作 数据库设计 提供帐户表以保存帐户数据 参考: 帐户信息至少包括账户id,账户余额 实体设计 提供帐户类,代表账户实体 业务逻辑...