首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

mybatis施用注解

2012-08-02 
mybatis使用注解mysql.sqlDROP TABLE USERSCREATE TABLE USERS( ID INT NOT NULLAUTO_INCREMENT, NUM INT

mybatis使用注解

mysql.sql

DROP TABLE USERS;CREATE TABLE USERS( ID INT NOT NULL  AUTO_INCREMENT, NUM INT, NAME VARCHAR(400), SEX  INT, AGE  INT, UKEY VARCHAR(50), CREATE_DATE VARCHAR(50), PASSWORD VARCHAR(50), EMAIL  VARCHAR(50), REMARK VARCHAR(250), PRIMARY KEY(ID));

?

?

?

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> 

?

?

config.properties

?

#Mysqldriver=com.mysql.jdbc.Driverurl=jdbc:mysql://10.16.11.210:3306/testusername=rootpassword=123456poolMaximumActiveConnections=15

?

?

?SessionFactory.java

?

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();}}}

?

?

Users.java

?

package pojo;import org.apache.ibatis.type.Alias;@Alias("Users")public class Users {private int id;private int num;private String name;private int sex;private int age;private String ukey;private String createDate;private String email;private String password;private String remark;public int getSex() {return sex;}public void setSex(int sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getUkey() {return ukey;}public void setUkey(String ukey) {this.ukey = ukey;}public String getCreateDate() {return createDate;}public void setCreateDate(String createDate) {this.createDate = createDate;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getRemark() {return remark;}public void setRemark(String remark) {this.remark = remark;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public int getId() {return id;}public void setId(int id) {this.id = id;}public int getNum() {return num;}public void setNum(int num) {this.num = num;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

?

?

?

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 /></mappers>

?

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

?

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

?

热点排行