mybatis使用注解2

http://weijun726.blog.163.com/blog/static/8734229920121015043788/



注解的详细例子
mybatis-config.xml的配置如下:

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <properties resource="config/config.properties"></properties> <typeAliases> <package name="pojo" /> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> <property name="poolMaximumActiveConnections" value="15" /> <property name="poolMaximumCheckoutTime" value="5000" /> </dataSource> </environment> </environments> </configuration>

SessionFactory.java 工厂方法 ,创建SqlSession对象及解析xml文件;

package common; import java.io.IOException; import java.io.Reader; import mapper.AnnUsersMapper; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.Configuration; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class SessionFactory { private static String RESOURCE = "config/mybatis-config.xml"; private static ThreadLocal<SqlSession> threadLocal = new ThreadLocal<SqlSession>(); public static SqlSessionFactory getSessionFactory() { Reader reader = null; try { reader = Resources.getResourceAsReader(RESOURCE); } catch (IOException e) { System.out.println("read mybatis-config.xml failed!"); e.printStackTrace(); } SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); Configuration config = sessionFactory.getConfiguration(); config.addMapper(AnnUsersMapper.class); return sessionFactory; } public static SqlSession getSession() { SqlSession session = threadLocal.get(); if (session == null) { session = getSessionFactory().openSession(); threadLocal.set(session); return session; } return session; } public static void closeSession() { SqlSession session = threadLocal.get(); if (session != null) { threadLocal.set(null); session.close(); } } }

UserBean.java  实体方法, 封装类 setXXX, getXXX;

package pojo; import org.apache.ibatis.type.Alias; @Alias("Users") public class Users { private int id; private int num; setXXX() getXXX() }

注解接口  AnnUsersMapper.java

package mapper; import java.util.List; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.InsertProvider; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.session.RowBounds; import pojo.Users; public interface AnnUsersMapper { // @Insert("INSERT INTO USERS(num,name,age,sex,ukey,create_date,email,password,remark)

values(#{num},#{name},#{age},#{sex},#{ukey},#{createDate},#{email},#{password},#{remark})") @InsertProvider(type = AnnUsersMapperProvider.class, method = "insert") int insert(List<Users> users); @Delete("DELETE FROM USERS") int delete(); @Select("SELECT count(*) as total FROM USERS") int count(); @Select("SELECT * FROM USERS") List<Users> selectByAll(@Param("rowBounds") RowBounds rowBounds); } class AnnUsersMapperProvider { public String insert() { String sql="INSERT INTO USERS(num,name,age,sex,ukey,create_date,email,password,remark)

values(" + "#{num}," + "#{name}," + "#{age}," + "#{sex}," + "#{ukey}," + "#{createDate}," + "#{email}," + "#{password}," + "#{remark}" + ")"; return sql; } }

AnnTest.java 测试类
package test; import java.util.Date; 
import mapper.AnnUsersMapper; 
import org.apache.ibatis.session.RowBounds; 
import org.apache.ibatis.session.SqlSession; 
import pojo.Users; 
import common.SessionFactory; 
import java.util.List;  
public class AnnTest {   
  public static void main(String[] args) {   
     SqlSession session = SessionFactory.getSession();  
     AnnUsersMapper userMapper = session.getMapper(AnnUsersMapper.class);  
  try {    
  System.out.println("---------insert strat------------");    
  Users users = new Users();    
  users.setAge(32);   
   users.setSex(1);   
   users.setCreateDate("2011-6-27");    
   users.setEmail("jjj2005jjjj@126.com");    
   users.setUkey("WERQWERWQERWQERTWETTREEEE"); 
   users.setRemark("nDKJGHJKJHHGHJJJJJGHGYT");    
   users.setPassword("123456");    
   users.setName("zhuyj");    
   Long l = new Date().getTime();    
   for (int i = 0; i < 100; i++) {     
    users.setNum(i);     
    session.insert("pojo.Users.insert", users);    
   }       
   session.commit();    
   System.out.println((new Date().getTime() - l) / 1000.0);    
   System.out.println("---------insert end-------------");     
   System.out.println("---------count strat-------------");   
   Long lll = new Date().getTime();    
   int count = userMapper.count();    
   System.out.println(count);    
   System.out.println(((new Date()).getTime() - lll) / 1000.0); 
   System.out.println("---------count end---------------");   
   System.out.println("---------select strat------------");   
   Long llll = new Date().getTime();       
   List<Users> li2= userMapper.selectByAll(new RowBounds(9000, 50)); 
   System.out.println(((new Date()).getTime() - llll) /1000.0);    
   System.out.println("---------select end--------------");      
   System.out.println(li2.get(1).getName());       
   System.out.println(li2.size());         
  } catch (Exception e) {    
   e.printStackTrace();    
   session.rollback();   
  } finally {    
  SessionFactory.closeSession();   
  }  
  } 
}
注意一个小问题,不知为什么在mybatis-config.xml使用

<mappers> <mapper class="mapper.AnnUsersMapper" /> </mappers>

 不能加载接口,后来我在SessionFactory.java里加载了

SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); Configuration config = sessionFactory.getConfiguration(); config.addMapper(AnnUsersMapper.class);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值