configuration.xml , MyBatis主配置文件
1 2 4 5 67 8 9 10 11 12 13 15 16 1714 18 20 2119 22 23 33 34 3524 3225 26 3127 28 29 30 36 3837
jdbc.properties
driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8username=rootpassword=123456
log4j.properties
log4j.rootLogger=debug, stdout, Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p - %m%nlog4j.appender.R=org.apache.log4j.RollingFileAppenderlog4j.appender.R.File=firestorm.loglog4j.appender.R.MaxFileSize=100KBlog4j.appender.R.MaxBackupIndex=1log4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=%p %t %c - %m%nlog4j.logger.com.codefutures=DEBUG
User .java
package com.mybatis.model;import java.io.Serializable;@SuppressWarnings("serial")public class User implements Serializable { private int id; private String userName; private String password; public User(){ } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }}
UserMap.xml
userName,password INSERT INTO USER( ) VALUES(#{userName},#{password}) UPDATE USER SET userName=#{userName} ,password=#{password} WHERE id=#{id} DELETE FROM USER WHERE id=#{id}
SessionFactoryUtil.java MyBatis工具类,用于创建SqlSessionFactory
package com.mybatis.sessionfactory;import java.io.IOException;import java.io.Reader;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class SessionFactoryUtil { private static final String RESOURCE = "Configuration.xml"; private static SqlSessionFactory sqlSessionFactory = null; private static ThreadLocalthreadLocal = new ThreadLocal (); static { Reader reader = null; try { reader = Resources.getResourceAsReader(RESOURCE); } catch (IOException e) { throw new RuntimeException("Get resource error:"+RESOURCE, e); } sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); } /** * Function : 获得SqlSessionFactory */ public static SqlSessionFactory getSqlSessionFactory(){ return sqlSessionFactory; } /** * Function : 重新创建SqlSessionFactory */ public static void rebuildSqlSessionFactory(){ Reader reader = null; try { reader = Resources.getResourceAsReader(RESOURCE); } catch (IOException e) { throw new RuntimeException("Get resource error:"+RESOURCE, e); } sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); } /** * Function : 获取sqlSession */ public static SqlSession getSession(){ SqlSession session = threadLocal.get(); if(session!=null){ if(sqlSessionFactory == null){ getSqlSessionFactory(); } //如果sqlSessionFactory不为空则获取sqlSession,否则返回null session = (sqlSessionFactory!=null) ? sqlSessionFactory.openSession(): null; } return session; } /** * Function : 关闭sqlSession */ public static void closeSession(){ SqlSession session = threadLocal.get(); threadLocal.set(null); if(session!=null){ session.close(); } }}
UserDao interface
package com.mybatis.dao;import java.util.List;import com.mybatis.model.User;public interface UserDao { public User load(int id); public void add(User user); public void update(User user); public void delete(int id); public User findByName(String userName); public ListqueryAllUser(); public List list(int pageNow,int pageSize); public int getAllCount(); }
UserDaoImpl
package com.mybatis.dao.implment;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.ibatis.session.SqlSession;import com.mybatis.dao.UserDao;import com.mybatis.model.User;import com.mybatis.sessionfactory.SessionFactoryUtil;public class UserDaoImpl implements UserDao { public User load(int id){ SqlSession session = SessionFactoryUtil.getSqlSessionFactory().openSession(); User user = (User) session.selectOne("com.mybatis.model.User.selectById_user", id); session.close(); return user; } public void add(User user) { SqlSession session = SessionFactoryUtil.getSqlSessionFactory().openSession(); session.insert("com.mybatis.model.User.inser_user", user); session.commit(); session.close(); } public void update(User user){ SqlSession session = SessionFactoryUtil.getSqlSessionFactory().openSession(); session.update("com.mybatis.model.User.update_user", user); session.commit(); session.close(); } public void delete(int id){ SqlSession session = SessionFactoryUtil.getSqlSessionFactory().openSession(); session.delete("com.mybatis.model.User.delete_user", id); session.close(); } public User findByName(String userName){ SqlSession session = SessionFactoryUtil.getSqlSessionFactory().openSession(); User user = (User)session.selectOne("com.mybatis.model.User.selectByName_user", userName); session.close(); return user; } @SuppressWarnings("unchecked") public ListqueryAllUser() { SqlSession session = SessionFactoryUtil.getSqlSessionFactory().openSession(); List list = session.selectList("com.mybatis.model.User.selectAll_user"); session.close(); return list; } @SuppressWarnings("unchecked") public List list(int pageNow , int pageSize){ SqlSession session = SessionFactoryUtil.getSqlSessionFactory().openSession(); Map params = new HashMap (); params.put("pageNow", pageNow); params.put("pageSize", pageSize); List list = session.selectList("com.mybatis.model.User.selectList_user", params); session.close(); return list; } public int getAllCount(){ SqlSession session =SessionFactoryUtil.getSqlSessionFactory().openSession(); int count = (Integer) session.selectOne("com.mybatis.model.User.selectCount_user"); session.close(); return count; } }
测试类:
package com.mybatis.dao.implment;import java.util.List;import org.junit.Test;import com.mybatis.dao.UserDao;import com.mybatis.model.User;public class UserDaoTest { private UserDao userDao = new UserDaoImpl(); @Test public void testLoad(){ User u = userDao.load(1); if(u!=null){ System.out.println("UserId:"+u.getId()+" UserName:"+u.getUserName()+" Password:"+u.getPassword()); } else{ System.out.println("id不存在!!"); } } @Test public void testAdd(){ User user = new User(); user.setUserName("admin5"); user.setPassword("123456"); userDao.add(user); } @Test public void testUpdate(){ User user = new User(); user.setId(2); user.setUserName("manager"); user.setPassword("123456"); userDao.update(user); } @Test public void testQueryAllUser(){ Listlist = userDao.queryAllUser(); if(list!=null&list.size()>0){ for(User u:list){ System.out.println("UserId:"+u.getId()+" UserName:"+u.getUserName()+" Password:"+u.getPassword()); } } } @Test public void testFindByName(){ User u = userDao.findByName("admin"); if(u!=null){ System.out.println("UserId:"+u.getId()+" UserName:"+u.getUserName()+" Password:"+u.getPassword()); } else{ System.out.println("用户名不存在!!"); } } @Test public void testList(){ List list = userDao.list(1, 4); if(list!=null&list.size()>0){ for(User u:list){ System.out.println("UserId:"+u.getId()+" UserName:"+u.getUserName()+" Password:"+u.getPassword()); } } } @Test public void testGetAllCount(){ System.out.println("All Count : "+userDao.getAllCount()); } @Test public void testDelete(){ userDao.delete(3); }}
转自:http://qingling600.iteye.com/blog/1832858#