使用spring jdbc template简化jdbc数据库操作实例代码
来源:互联网 发布:梁朝伟无间道知乎 编辑:程序博客网 时间:2024/05/22 00:31
文章地址: http://blog.csdn.net/5iasp/article/details/12206793
作者: javaboy2012
Email:yanek@163.com
qq: 1046011462
使用spring jdbc template简化jdbc数据库操作实例代码
包括如下几个类:
1. DAO接口
package com.test;import java.util.List;import org.springframework.jdbc.core.JdbcTemplate;public interface DAO {public int getCount(String sql);public String getResultValue(String sql, String column);public List getResult(String sql);public void update(String sql);public void update(String sql,Object[] params);public void delete(String sql);public JdbcTemplate getJt();}
2. DAO接口实现类 DAOImpl
package com.test;import java.util.List;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.dao.DataAccessException;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.support.rowset.SqlRowSet;public class DAOImpl implements DAO{protected final Log log = LogFactory.getLog(this.getClass());private JdbcTemplate jt;public int getCount(String sql) {int count = 0;try {count = jt.queryForInt(sql);} catch (DataAccessException e) {log.info("!!!!!!!!!!!!!!!!!!!Exception:" + e);}return count;}public String getResultValue(String sql, String column) {String value = "";try {SqlRowSet s = jt.queryForRowSet(sql);while (s.next()){value = s.getString(column);}} catch (DataAccessException e) {log.info("!!!!!!!!!!!!!!!!!!!Exception:" + e);}return value;}public List getResult(String sql) {List list = null;try {list = jt.queryForList(sql);} catch (DataAccessException e) {log.info("!!!!!!!!!!!!!!!!!!!Exception:" + e);}return list;}public void update(String sql) {try {jt.update(sql);} catch (DataAccessException e) {log.info("!!!!!!!!!!!!!!!!!!!Exception:" + e);}}public void delete(String sql) {try {jt.execute(sql);} catch (DataAccessException e) {log.info("!!!!!!!!!!!!!!!!!!!Exception:" + e);}}@Overridepublic void update(String sql, Object[] params) {// TODO Auto-generated method stubtry {jt.update(sql,params);} catch (DataAccessException e) {log.info("!!!!!!!!!!!!!!!!!!!Exception:" + e);}}public void setJt(JdbcTemplate jt) {this.jt = jt;}public JdbcTemplate getJt() {return jt;}}
3. UserManager 接口
package com.test;import java.util.List;import java.util.Map;public interface UserManager {public void addUser(String name);public void updateUser(String name,int id);public void deleteUser(int id);public String getUser(int id);public User getUserByID(int id);public List getUsers();public List<User> getUserList();public void init();}
4. UserManagerImpl:UserManager 接口实现类
package com.test;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.springframework.jdbc.core.RowMapper;public class UserManagerImpl implements UserManager {private DAO dao;/** * @param args */public static void main(String[] args) {}public void addUser(String name){/*String sql="insert into t_test(name) values('"+name+"')";dao.update(sql);*/String sql="insert into t_test(name) values(?)";Object[] params = new Object[] {name};dao.update(sql, params);}public List getUsers(){String sql = "select * FROM t_test";List<Map> lists = dao.getResult(sql);return lists;}public DAO getDao() {return dao;}public void setDao(DAO dao) {this.dao = dao;}@Overridepublic void init() {// TODO Auto-generated method stub}@Overridepublic void updateUser(String name, int id) {/*String sql="update t_test set name='"+name+"' where id="+id;dao.update(sql);*//*String sql="update t_test set name=? where id="+id;Object[] params = new Object[] {name};*/String sql="update t_test set name=? where id=?";Object[] params = new Object[] {name,new Integer(id)};dao.update(sql, params);}@Overridepublic void deleteUser(int id) {String sql="delete from t_test where id="+id;dao.delete(sql);}@Overridepublic String getUser(int id) {// TODO Auto-generated method stubString sql="select name from t_test where id="+id;String name=dao.getResultValue(sql, "name");return name;}@Overridepublic User getUserByID(int id) {User user=null;String sql="select id,name from t_test where id="+id;List<Map> lists = dao.getResult(sql);if (lists.size()>0){user=new User();Map map=lists.get(0);user.setId((Integer)map.get("id"));user.setName((String)map.get("name"));}return user;}@Overridepublic List<User> getUserList() {String sql = "select * FROM t_test";List<Map> lists = dao.getResult(sql);List<User> users=new ArrayList<User>();if (lists.size()>0){for(int i=0;i<lists.size();i++){User user=new User();Map map=lists.get(i);user.setId((Integer)map.get("id"));user.setName((String)map.get("name"));users.add(user);}}return users;}}
5. User类:实体类
package com.test;public class User {private String name;private int id;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}}
6. SpringUtil : 工具类
package com.test;import java.util.List;import java.util.Map;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;/** * spring工具类 * @author * */public class SpringUtil {/** * @param args */public static void main(String[] args) {UserManager um=(UserManager)SpringUtil.getBean("userManager");List<Map> users=um.getUsers();for(int i=0;i<users.size();i++){String t_id=users.get(i).get("id").toString();String t_name=users.get(i).get("name").toString();System.out.println(t_id+"-"+t_name);}}private static ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");public static Object getBean(String beanName) {return ctx.getBean(beanName);}}
7. 测试类: Test
package com.test;import java.util.List;import java.util.Map;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test {/** * @param args */public static void main(String[] args) {/*ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");UserManager um=(UserManager)ctx.getBean("userManager");*/UserManager um=(UserManager)SpringUtil.getBean("userManager");//新增/*String name="test";um.addUser(name);*///列表List<Map> users=um.getUsers();for(int i=0;i<users.size();i++){String t_id=users.get(i).get("id").toString();String t_name=users.get(i).get("name").toString();System.out.println(t_id+"-"+t_name);}//修改//um.updateUser("test6", 6);//删除//um.deleteUser(1);//获取某个字段//String name2=um.getUser(2);//System.out.println(name2+"-"+name2);// 获取对象列表List<User> users2=um.getUserList();for(int i=0;i<users2.size();i++){int t_id2=users2.get(i).getId();String t_name2=users2.get(i).getName();System.out.println(t_id2+"-"+t_name2);}//获取对象User u=um.getUserByID(2);System.out.println(u.getId()+"-"+u.getName());}}
8. Spring 配置文件:applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans><!-- DB --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property><property name="url"><value>jdbc:mysql://127.0.0.1/myweb?useUnicode=true&characterEncoding=gbk</value></property><property name="username"><value>root</value></property><property name="password"><value>root</value></property></bean><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" abstract="false" lazy-init="false" autowire="default" dependency-check="default"> <property name="dataSource"> <ref bean="dataSource" /> </property> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource"><ref bean="dataSource" /></property></bean><bean id="springDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="proxyInterfaces"> <list> <value>com.test.DAO</value> </list> </property> <property name="target"> <ref bean="DAO"/> </property> <property name="transactionManager"> <ref bean="transactionManager"/> </property> <property name="transactionAttributes"> <props> <prop key="insert*">PROPAGATION_REQUIRED</prop> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="delete*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <bean id="DAO" class="com.test.DAOImpl"><property name="jt"> <ref bean="jdbcTemplate" /> </property></bean> <bean name="userManager" class="com.test.UserManagerImpl" init-method="init"> <property name="dao"> <ref bean="DAO" /> </property> </bean> </beans>
9. web环境下调用:
web.xml配置:
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/classes/applicationContext.xml</param-value></context-param> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
测试jsp文件:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page import="org.springframework.web.context.WebApplicationContext"%><%@ page import="com.test.*"%><%@ page import="org.springframework.web.context.support.WebApplicationContextUtils"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><%WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());UserManager um = (UserManager) ctx.getBean("userManager"); %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>spring jdbc test</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body><br><%List<User> users2=um.getUserList();for(int i=0;i<users2.size();i++){int t_id2=users2.get(i).getId();String t_name2=users2.get(i).getName();%><%=t_id2 %>-<%=t_name2 %> <br><%System.out.println(t_id2+"-"+t_name2);} %> </body></html>
资源下载地址(不需要下载积分):http://download.csdn.net/detail/5iasp/6344527
- 使用spring jdbc template简化jdbc数据库操作实例代码
- 使用 Spring jdbcTemplate 进一步简化 JDBC 操作
- 使用Spring的jdbcTemplate简化JDBC操作
- 使用Spring的JdbcTemplate简化jdbc操作
- 使用Spring JDBCTemplate简化JDBC操作
- 使用Spring JDBCTemplate简化JDBC的操作
- 使用Spring JDBCTemplate简化JDBC的操作
- 使用Spring JDBCTemplate简化JDBC的操作
- Spring使用JDBC操作数据库
- spring 的jdbc Template操作
- Leopard Jdbc:简化Spring Jdbc使用
- 使用DBUtiles简化JDBC操作
- Spring+JDBC 数据库实例
- 使用Spring的jdbcTemplate进一步简化JDBC操作
- 使用Spring的jdbcTemplate进一步简化JDBC操作
- 使用Spring的jdbcTemplate进一步简化JDBC操作
- 使用Spring的jdbcTemplate进一步简化JDBC操作
- 使用Spring的jdbcTemplate进一步简化JDBC操作
- Android NDK之JNI陷阱
- 2014百度校招笔试题之动态链接库&静态链接库详解
- Linux初学所遇问题
- strlen和sizeof的区别
- java开发应善于使用注释
- 使用spring jdbc template简化jdbc数据库操作实例代码
- Oracle数据库学习之数据类型和表的操作
- 转一下大神的字符hash,
- .net技术类面试、笔试题汇总4
- Android中循环线程的安全关闭方法
- centos 6.4安装wine1.6少Xlib/Xfree86解决办法
- mongodb基本命令2
- 从全局看数据库系统设计
- Cygwin-1.7.17环境下编译FLTK-1.3.2