针对数据库操作,Spring框架提供了JdbcTemplate类。

1.Spring JDBC的配置

创建配置文件applicationContext.xml,添加如下代码:

    <!--配置数据源-->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/springjdbc"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
<!--配置JDBC模板-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
<!--配置注入类-->
<bean id="userDao" class="com.wxy.model.UserDaoImpl">
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>

2.创建Javabean和Dao接口

 public class User {
private Integer id;
private String name;
private Integer age; public Integer getId() { return id; } public void setId(Integer id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String password) {
this.name = password;
} public Integer getAge() { return age; } public void setAge(Integer age) {
this.age = age;
}
}

javabean

public interface UserDao {
public void execute();
public int addUser(User user);
public int updateUser(User user);
public int deleteUser(int id);
public void query();
}

UserDao

3.Spring JdbcTemplate的常用方法

2.1 execute(String sql)执行SQL语句

2.2 update()插入、更新、删除表数据操作

2.3 query()查询操作

上述的三个数据库操作方法都放在UserDaoImpl实现类中调用,具体代码如下:

 import com.wxy.javabean.User;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.ResultSetExtractor; import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List; public class UserDaoImpl implements UserDao {
//获取JdbcTemplate实例
private JdbcTemplate jdbcTemplate;
14 public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
15 this.jdbcTemplate = jdbcTemplate;
16 }
//执行SQL语句的方法
@Override
public void execute() {
jdbcTemplate.execute("create table account( id int primary key auto_increment,"
+ "username varchar(50)," + "balance double)");
}
//添加用户
@Override
public int addUser(User user) {
String sql = "insert user (id,name,age) value(?,?,?)";
//定义数组来存储SQL语句中的参数
Object[] obj = new Object[]{
user.getId(),
user.getName(),
user.getAge()
};
int num = this.jdbcTemplate.update(sql,obj);
return num;
}
//更新用户信息
public int updateUser(User user){
String sql = "update user set name=?,age=? where id=?";
Object[] params = new Object[]{
user.getName(),
user.getAge(),
user.getId()
};
int num = this.jdbcTemplate.update(sql,params);
return num;
}
//删除用户
@Override
public int deleteUser(int id) {
String sql = "delete from user where id =?";
int num = jdbcTemplate.update(sql,id);
return num;
}
//查询所有用户
@Override
public void query() {
String listSql = "select * from user";
List<User> list = jdbcTemplate.query(listSql, new ResultSetExtractor<List>() {
public List<User> extractData(ResultSet rs) throws SQLException,
DataAccessException {
List<User> result = new ArrayList<User>();
while (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setAge(rs.getInt("age"));
result.add(user);
}
return result;
}
}); for (User user : list) {
System.out.print("id=" + user.getId() + " ");
System.out.print("name=" + user.getName() + " ");
System.out.println("age=" + user.getAge() + " ");
}
}
}

4.编写测试类Test

 import com.wxy.javabean.User;
import com.wxy.model.UserDaoImpl;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class JdbcTemplateTest {
@Test
public void executeTest(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDaoImpl userDao = (UserDaoImpl) applicationContext.getBean("userDao");
userDao.execute();
System.out.println("创建成功!");
}
@Test
public void addTest(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDaoImpl userDao = (UserDaoImpl) applicationContext.getBean("userDao");
User user = new User();
user.setId(3);
user.setName("Tom");
user.setAge(21);
int num = userDao.addUser(user);
if(num>0){
System.out.println("成功添加"+num+"个用户");
}else {
System.out.println("添加用户操作失败!");
}
}
@Test
public void updateTest(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDaoImpl userDao = (UserDaoImpl) applicationContext.getBean("userDao");
User user = new User();
user.setId(2);
user.setName("Tim");
user.setAge(26);
int num = userDao.addUser(user);
if(num>0){
System.out.println("成功修改"+num+"个用户");
}else {
System.out.println("修改用户信息失败!");
}
}
@Test
public void deleteTest(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDaoImpl userDao = (UserDaoImpl) applicationContext.getBean("userDao");
int num = userDao.deleteUser(2);
if(num>0){
System.out.println("成功删除"+num+"个用户");
}else {
System.out.println("删除用户操作失败!");
}
}
@Test
public void query(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDaoImpl userDao = (UserDaoImpl) applicationContext.getBean("userDao");
userDao.query();
}
}

Spring JDBC数据库开发的更多相关文章

  1. 【Spring】Spring的数据库开发 - 1、Spring JDBC的配置和Spring JdbcTemplate的解析

    Spring JDBC 文章目录 Spring JDBC Spring JdbcTemplate的解析 Spring JDBC的配置 简单记录-Java EE企业级应用开发教程(Spring+Spri ...

  2. (转)Spring+JDBC组合开发

    http://blog.csdn.net/yerenyuan_pku/article/details/52882435 搭建和配置Spring与JDBC整合的环境 使用Spring+JDBC集成步骤如 ...

  3. 【Spring】Spring的数据库开发 - 2、Spring JdbcTemplate的常用方法(execute、update、query)

    Spring JdbcTemplate的常用方法 文章目录 Spring JdbcTemplate的常用方法 execute() update() query() 简单记录-Java EE企业级应用开 ...

  4. Spring的数据库开发

                                Spring JDBC框架操作mysql数据库 Spring中的JDBC为我们省去连接和关闭数据库的代码,我们着重关注对数据库的操作.Sprin ...

  5. Spring笔记——Spring+JDBC组合开发

      使用Spring+JDBC集成步骤如下:   1. 配置数据源 2. 配置事务.配置事务时,需要在xml配置文件中引入用于声明事务的tx命名空间,事务的配置方式有两种:注解方式和基于XML配置方式 ...

  6. Spring——JDBC——数据库

    1.Spring 的数据访问哲学 数据访问的功能放到一个或者多个专注于此项任务的组件.这样的组件通常称为数据访问对象(data access object)DAO或者Repository. 为了避免应 ...

  7. 第4章 Spring的数据库开发

    4.1 Spring JDBC Spring的JDBC模块负责数据库资源管理和错误处理,化简了开发者对数据库的操作. 4.11 Spring JdbcTemplate的解析 * JdbcTemplat ...

  8. Spring + JDBC 组合开发集成步骤

    1:配置数据源,如: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="h ...

  9. Spring数据库开发

    Spring的数据库开发 #Spring中JDBC模板的作用 JDBC模板负责数据库资源管理和错误处理: #熟悉Spring  JDBC的配置 配置数据源和jdbc模板 <?xml versio ...

随机推荐

  1. CVTE面经

    神一般的面试经历.也算面了不少公司,没见过这种面试. 一面:三个同学对应一个面试官,同一个问题依次作答. 1.为什么投递这个岗位? 答:blablabla... 2.最难忘的成功项目? 答:blabl ...

  2. 一个对象toString()方法如果没有被重写,那么默认调用它的父类Object的toString()方法,而Object的toString()方法是打印该对象的hashCode,一般hashCode就是此对象的内存地址

    昨天因为要从JFrame控件获取密码,注意到一个问题,那就是用toString方法得到的不一定是你想要的,如下: jPasswordField是JFrame中的密码输入框,如果用下面的方法是得不到密码 ...

  3. JSP页面使用EL表达式内容显示不全问题记录

    1.当EL表达式里面的值存在引号之类的字符时, ${caseparam.cp_value}的值为 {"cpage":"1","resType" ...

  4. radis多个盘并发IO

    IO就是对磁盘的读/写. 一次IO,就是发出指令+执行命令. 磁盘IO的时间=寻道时间+数据传输时间 单盘不能并发IO. radis多个盘并发IO. 影响IO的最大因素是寻道时间. 影响电脑速度:cp ...

  5. 【Linux】七种文件类型

    Linux中的七种文件类型 d 目录文件. l 符号链接(指向另一个文件). s 套接字文件. b 块设备文件,二进制文件. c 字符设备文件. p 命名管道文件. - 普通文件

  6. electron 学习

    index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  7. Java_Web之宠物管理系统

    使用JSP+servLet实现宠物管理系统,oraC1e11g作为后台数据厍,实现查看宠物和增加宠物的功能由你实现,如图: 其中宠物包栝:狗.猫.鸟.鼠 具体要求及推荐实现步骤 第一步:创建数据库代码 ...

  8. iOS 加密算法汇总

    CCCryptorStatus CCCryptorCreate( CCOperation op,             /* kCCEncrypt, etc. */ CCAlgorithm alg, ...

  9. Python-logging模块的初级使用

    这篇文章适合刚接触logging模块,想快速使用 并看到使用效果的童鞋.如果想全面的了解logging模块,请移步~ 直接上代码+注释 #1.导入模块logging import logging #2 ...

  10. react获取url查询参数

    继承自React.Component的this.props.location.query对象下有当前url的各种查询参数.简单的例子:在控制台打印这个对象 import React from 'rea ...