使用spring JdbcTemplate简化jdbc数据库操作实例代码

分享到:

使用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);
}
	}
@Override
	public void update(String sql, Object[] params) {
// TODO Auto-generated method stub
try {
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;
	}
@Override
	public void init() {
// TODO Auto-generated method stub
}
@Override
	public 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);
}
@Override
	public void deleteUser(int id) {
String sql="delete from t_test where id="+id;
dao.delete(sql);
}
@Override
	public String getUser(int id) {
// TODO Auto-generated method stub
String sql="select name from t_test where id="+id;
String name=dao.getResultValue(sql, "name");
return name;
	}
@Override
	public 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;
	}
@Override
	public 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>


 

昵    称:
验证码:

相关文档: