Spring中使用JDBC做的增删改查
db.properties
jdbc.user=root jdbc.password=123456 jdbc.driverClass=com.mysql.jdbc.Driver jdbc.jdbcUrl=jdbc:mysql://192.168.43.56:3306/sanxia jdbc.initialPoolSize=5 jdbc.maxPoolSize=10
SpringJDBD.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd"> <context:component-scan base-package="com.xcode"></context:component-scan> <!-- 导入资源文件 --> <context:property-placeholder location="classpath:db.properties" /> <!-- 配置C3P0数据源 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="user" value="${jdbc.user}"></property> <property name="password" value="${jdbc.password}"></property> <property name="driverClass" value="${jdbc.driverClass}"></property> <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property> <property name="initialPoolSize" value="${jdbc.initialPoolSize}"></property> <property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property> </bean>
<!-- 配置Spring的JdbcTemplate --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 配置NamedParameterJdbcTemplate,该对象可以使用具名参数,其没有无参构造器,必须为其构造器指定参数 --> <bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"> <constructor-arg ref="dataSource"></constructor-arg> </bean> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value=""></property> <property name="suffix" value=".jsp"></property> </bean> </beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>SpringJDBC</display-name> <servlet> <servlet-name>SpringJDBC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:SpringJDBD.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>SpringJDBC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
使用JdbcTemplate类,实现使用JDBC ,参数是用object数组传递的
1.public class UserDaoImpl implements UserDao{ 2.// 定义一个Jdbc 3. private JdbcTemplate jt; 4.// 必须有set 方法,因为是通过set方法装配的 5. public void setJt(JdbcTemplate jt) { 6. this.jt = jt; 7. } 8. @Override 9. public void delete(int id) { 10. // TODO Auto-generated method stub 11. String sql="delete from user where id="+id; 12. int temp=this.jt.update(sql); 13. if(temp>0){ 14. System.out.println("删除成功!"); 15. }else{ 16. System.out.println("删除失败!"); 17. } 18. } 19. 20. @Override 21. public void insert(User entity) { 22. // TODO Auto-generated method stub 23. String sql="insert into user(name,age,sex) values(?,?,?)"; 24. Object obj[]={entity.getName(),entity.getAge(),entity.getSex()}; 25. int temp=this.jt.update(sql,obj); 26. if(temp>0){ 27. System.out.println("插入成功!"); 28. }else{ 29. System.out.println("插入失败!"); 30. } 31. } 32. 33. 34. 35. @Override 36. public List<User> selectAll() { 37. String sql="select * from user"; 38. List list=this.jt.query(sql,new RowMapper(){ 39. 40. @Override 41. public Object mapRow(ResultSet rs, int row) throws SQLException { 42. // TODO Auto-generated method stub 43. User user=new User(); 44. user.setId(rs.getInt("id")); 45. user.setName(rs.getString("name")); 46. user.setAge(rs.getInt("age")); 47. user.setSex(rs.getString("sex")); 48. return user; 49. } 50. 51. }); 52. System.out.println(list.size()); 53. // TODO Auto-generated method stub 54. return list; 55. } 56. 57. @Override 58. public User selectById(int id) { 59. // TODO Auto-generated method stub 60. String sql="select id,name,age,sex from user where id="+id; 61. User user=(User)jt.queryForObject(sql, new RowMapper(){ 62. 63. @Override 64. public Object mapRow(ResultSet rs, int arg1) throws SQLException { 65. // TODO Auto-generated method stub 66. User user=new User(); 67. user.setId(rs.getInt("id")); 68. user.setName(rs.getString("name")); 69. user.setAge(rs.getInt("age")); 70. user.setSex(rs.getString("sex")); 71. return user; 72. } 73. 74. }); 75. 76. return user; 77. } 78. 79. @Override 80. public void update(User entity) { 81. // TODO Auto-generated method stub 82. String sql="update user set name=?,age=?,sex=? where id=?"; 83. Object obj[]={entity.getName(),entity.getAge(),entity.getSex(),entity.getId()}; 84. int temp=jt.update(sql,obj); 85. if(temp>0){ 86. System.out.println("更新成功!"); 87. }else{ 88. System.out.println("更新失败!"); 89. } 90. } 91. 92.}