springJDBC的几种方法
Posted xiaostudy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springJDBC的几种方法相关的知识,希望对你有一定的参考价值。
1、简单粗暴,直接在类中创建连接池使用
1 package com.xiaostudy; 2 3 import org.apache.commons.dbcp.BasicDataSource; 4 import org.springframework.jdbc.core.JdbcTemplate; 5 6 /** 7 * @desc 测试类 8 * 9 * @author xiaostudy 10 * 11 */ 12 public class Test { 13 14 public static void main(String[] args) { 15 //创建连接池 16 BasicDataSource dataSource = new BasicDataSource(); 17 dataSource.setDriverClassName("com.mysql.jdbc.Driver"); 18 dataSource.setUrl("jdbc:mysql://localhost:3306/user"); 19 dataSource.setUsername("root"); 20 dataSource.setPassword("123456"); 21 //创建模板 22 /*JdbcTemplate jdbcTemplate = new JdbcTemplate(); 23 jdbcTemplate.setDataSource(dataSource);*/ 24 JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); 25 26 //添加 27 jdbcTemplate.update("insert into spring_user(name, password) values(?, ?);", "xiaostudy", "123456"); 28 //修改 29 jdbcTemplate.update("update spring_user set name=?,password=? where id=?;", "xiaostudy", "123456", "2"); 30 //删除 31 jdbcTemplate.update("delete from spring_user where name=? and password=?;", "xiaostudy", "123456"); 32 33 } 34 35 }
2、较第一种,就是把业务分开
2.1、domain类User.java
1 package com.xiaostudy; 2 3 /** 4 * @desc domain类 5 * @author xiaostudy 6 * 7 */ 8 public class User { 9 10 private Integer id; 11 private String name; 12 private String password; 13 14 public Integer getId() { 15 return id; 16 } 17 18 public void setId(Integer id) { 19 this.id = id; 20 } 21 22 public String getName() { 23 return name; 24 } 25 26 public void setName(String name) { 27 this.name = name; 28 } 29 30 public String getPassword() { 31 return password; 32 } 33 34 public void setPassword(String password) { 35 this.password = password; 36 } 37 38 @Override 39 public String toString() { 40 return "User [id=" + id + ", name=" + name + ", password=" + password + "]"; 41 } 42 43 }
2.2、dao类UserDao.java
1 package com.xiaostudy; 2 3 import org.apache.commons.dbcp.BasicDataSource; 4 import org.springframework.jdbc.core.JdbcTemplate; 5 6 7 /** 8 * @desc Dao类 9 * @author xiaostudy 10 * 11 */ 12 public class UserDao { 13 14 /** 15 * @desc 获取模板的方法 16 * @return JdbcTemplate 返回类型 17 */ 18 public JdbcTemplate getJdbcTemplate() { 19 // 创建连接池 20 BasicDataSource dataSource = new BasicDataSource(); 21 dataSource.setDriverClassName("com.mysql.jdbc.Driver"); 22 dataSource.setUrl("jdbc:mysql://localhost:3306/user"); 23 dataSource.setUsername("root"); 24 dataSource.setPassword("123456"); 25 26 // 创建模板 27 JdbcTemplate jdbcTemplate = new JdbcTemplate(); 28 jdbcTemplate.setDataSource(dataSource); 29 return jdbcTemplate; 30 } 31 32 /** 33 * @desc 添加用户 34 * @param user 参数 35 * @return int 返回类型 36 */ 37 public int insertUser(User user) { 38 JdbcTemplate jdbcTemplate = getJdbcTemplate(); 39 return jdbcTemplate.update("insert into spring_user(name, password) values(?, ?);", user.getName(), 40 user.getPassword()); 41 } 42 43 /** 44 * @desc 修改用户 45 * @param user 参数 46 * @param id 参数 47 * @return int 返回类型 48 */ 49 public int updateUser(User user, int id) { 50 JdbcTemplate jdbcTemplate = getJdbcTemplate(); 51 return jdbcTemplate.update("update spring_user set name=?,password=? where id=?;", user.getName(), 52 user.getPassword(), id); 53 } 54 55 /** 56 * @desc 删除用户 57 * @param user 参数 58 * @return int 返回类型 59 */ 60 public int deleteUser(User user) { 61 JdbcTemplate jdbcTemplate = getJdbcTemplate(); 62 return jdbcTemplate.update("delete from spring_user where name=? and password=?;", user.getName(), 63 user.getPassword()); 64 } 65 }
2.3、测试类Test.java
1 package com.xiaostudy; 2 3 /** 4 * @desc 测试类 5 * @author xiaostudy 6 * 7 */ 8 public class Test { 9 10 public static void main(String[] args) { 11 User user = new User(); 12 user.setName("xiaostudy"); 13 user.setPassword("123456"); 14 UserDao userDao = new UserDao(); 15 // userDao.insertUser(user); 16 // userDao.updateUser(user, 1); 17 userDao.deleteUser(user); 18 19 } 20 21 }
3、较第二种,接入spring中
3.1、domain类User.java
1 package com.xiaostudy; 2 3 /** 4 * @desc damain类 5 * @author xiaostudy 6 * 7 */ 8 public class User { 9 10 private Integer id; 11 private String name; 12 private String password; 13 14 public Integer getId() { 15 return id; 16 } 17 18 public void setId(Integer id) { 19 this.id = id; 20 } 21 22 public String getName() { 23 return name; 24 } 25 26 public void setName(String name) { 27 this.name = name; 28 } 29 30 public String getPassword() { 31 return password; 32 } 33 34 public void setPassword(String password) { 35 this.password = password; 36 } 37 38 @Override 39 public String toString() { 40 return "User [id=" + id + ", name=" + name + ", password=" + password + "]"; 41 } 42 43 }
3.2、dao类UserDao.java
1 package com.xiaostudy; 2 3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.support.ClassPathXmlApplicationContext; 5 import org.springframework.jdbc.core.JdbcTemplate; 6 7 /** 8 * @desc dao类 9 * @author xiaostudy 10 * 11 */ 12 public class UserDao { 13 14 /** 15 * @desc 获取模板的方法 16 * @return JdbcTemplate 返回类型 17 */ 18 public JdbcTemplate getJdbcTemplate() { 19 //从spring容器中获取连接池对象 20 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); 21 return applicationContext.getBean("jdbcTemplate", JdbcTemplate.class); 22 } 23 24 /** 25 * @desc 添加用户 26 * @param user 参数 27 * @return int 返回类型 28 */ 29 public int insertUser(User user) { 30 JdbcTemplate jdbcTemplate = getJdbcTemplate(); 31 return jdbcTemplate.update("insert into spring_user(name, password) values(?, ?);", user.getName(), user.getPassword()); 32 } 33 34 /** 35 * @desc 修改用户 36 * @param user 参数 37 * @param id 参数 38 * @return int 返回类型 39 */ 40 public int updateUser(User user, int id) { 41 JdbcTemplate jdbcTemplate = getJdbcTemplate(); 42 return jdbcTemplate.update("update spring_user set name=?,password=? where id=?;", user.getName(), user.getPassword(), id); 43 } 44 45 /** 46 * @desc 删除用户 47 * @param user 参数 48 * @return int 返回类型 49 */ 50 public int deleteUser(User user) { 51 JdbcTemplate jdbcTemplate = getJdbcTemplate(); 52 return jdbcTemplate.update("delete from spring_user where name=? and password=?;", user.getName(), user.getPassword()); 53 } 54 }
3.3、spring配置文件applicationContext.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:aop="http://www.springframework.org/schema/aop" 5 xmlns:context="http://www.springframework.org/schema/context" 6 xsi:schemaLocation="http://www.springframework.org/schema/beans 7 http://www.springframework.org/schema/beans/spring-beans.xsd 8 http://www.springframework.org/schema/aop 9 http://www.springframework.org/schema/aop/spring-aop.xsd 10 http://www.springframework.org/schema/context 11 http://www.springframework.org/schema/context/spring-context.xsd"> 12 <!-- 将domain类添加到容器中 --> 13 <bean id="user" class="com.xiaostudy.User"></bean> 14 <!-- 将dao类添加到容器中 --> 15 <bean id="userDao" class="com.xiaostudy.UserDao"></bean> 16 <!-- 将连接池添加到容器中 --> 17 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> 18 <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> 19 <property name="url" value="jdbc:mysql://localhost:3306/user"></property> 20 <property name="username" value="root"></property> 21 <property name="password" value="123456"></property> 22 </bean> 23 <!-- 将模板添加到容器中 --> 24 <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> 25 <property name="dataSource" ref="dataSource"></property> 26 </bean> 27 </beans>
3.4、测试类Test.java
1 package com.xiaostudy; 2 3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.support.ClassPathXmlApplicationContext; 5 6 /** 7 * @desc 测试类 8 * @author xiaostudy 9 * 10 */ 11 public class Test { 12 13 public static void main(String[] args) { 14 //获取spring容器 15 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); 16 //从容器中获取domain对象 17 User user = applicationContext.getBean("user", User.class); 18 user.setName("huangwu"); 19 user.setPassword("123456"); 20 //从容器中获取dao对象 21 UserDao userDao = applicationContext.getBean("userDao", UserDao.class); 22 //userDao.insertUser(user); 23 userDao.updateUser(user, 2); 24 //userDao.deleteUser(user); 25 26 } 27 28 }
4、较第三种,把在spring配置文件中的连接池信息提取到一个配置文件中
4.1、domain类User.java
1 package com.xiaostudy; 2 3 /** 4 * @domain类 5 * @author xiaostudy 6 * 7 */ 8 public class User { 9 10 private Integer id; 11 private String name; 12 private String password; 13 14 public Integer getId() { 15 return id; 16 } 17 18 public void setId(Integer id) { 19 this.id = id; 20 } 21 22 public String getName() { 23 return name; 24 } 25 26 public void setName(String name) { 27 this.name = name; 28 } 29 30 public String getPassword() { 31 return password; 32 } 33 34 public void setPassword(String password) { 35 this.password = password; 36 } 37 38 @Override 39 public String toString() { 40 return "User [id=" + id + ", name=" + name + ", password=" + password + "]"; 41 } 42 43 }
4.2、dao类UserDao.java
1 package com.xiaostudy; 2 3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.support.ClassPathXmlApplicationContext; 5 import org.springframework.jdbc.core.JdbcTemplate; 6 7 /** 8 * @desc dao类 9 * @author xiaostudy 10 * 11 */ 12 public class UserDao { 13 14 /** 15 * @desc 获取模板的方法 16 * @return JdbcTemplate 返回类型 17 */ 18 public JdbcTemplate getJdbcTemplate() { 19 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); 20 return applicationContext.getBean("jdbcTemplate", JdbcTemplate.class); 21 } 22 23 /** 24 * @desc 添加用户 25 * @param user 参数 26 * @return int 返回类型 27 */ 28 public int insertUser(User user) { 29 JdbcTemplate jdbcTemplate = getJdbcTemplate(); 30 return jdbcTemplate.update("insert into spring_user(name, password) values(?, ?);", user.getName(), user.getPassword()); 31 } 32 33 /** 34 * @desc 修改用户 35 * @param user 参数 36 * @param id 参数 37 * @return int 返回类型 38 */ 39 public int updateUser(User user, int id) { 40 JdbcTemplate jdbcTemplate = getJdbcTemplate(); 41 return jdbcTemplate.update("update spring_user set name=?,password=? where id=?;", user.getName(), user.getPassword(), id); 42 } 43 44 /** 45 * @desc 删除用户 46 * @param user 参数 47 * @return int 返回类型 48 */ 49 public int deleteUser(User user) { 50 JdbcTemplate jdbcTemplate = getJdbcTemplate(); 浅析XSS的几种测试方法一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式