lujiguo115 发表于 2016-11-24 02:57:13

mybatis 基本

  今天刚听说iBATIS改名为MyBatis,实际上就是iBATIS 3.0.1。以前都是用hibernate或者JPA,同时听说iBATIS 3与iBATIS 2 相比,变化挺大的,于是今天花了点时间学习了一下,做了个小例子。
  准备工作:建立相应的数据库,表,添加一条记录用于测试。
  第一步当然是建立项目,导入jar包,导入mybatis-3.0.1.jar,和mysql的jdbc驱动。
  第二步 新建一个类User,包含主键,用户名,密码等属性

Java代码  





[*]package cn.dcr.mybatis.entity;   
[*]  
[*]
public class User {   
[*]
    private Long id;   
[*]
    private String userName;   
[*]
    private String password;   
[*]
    private int age;   
[*]  
[*]
    public Long getId() {   
[*]
        return id;   
[*]    }   
[*]  
[*]
    public void setId(Long 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;   
[*]    }   
[*]  
[*]
    public int getAge() {   
[*]
        return age;   
[*]    }   
[*]  
[*]
    public void setAge(int age) {   
[*]
        this.age = age;   
[*]    }   
[*]  
[*]}  



package cn.dcr.mybatis.entity;
public class User {
private Long id;
private String userName;
private String password;
private int age;
public Long getId() {
return id;
}
public void setId(Long 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;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
  第三步,写sql映射的xml文件

Xml代码  





[*]<?xml version="1.0" encoding="UTF-8" ?>     
[*]<!DOCTYPE mapper     
[*]PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"     
[*]
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">     
[*]     
[*]
<mapper namespace="cn.dcr.mybatis.entity.UserMapper">     
[*]
    <select id="selectOne" parameterType="long" resultType="cn.dcr.mybatis.entity.User">     
[*]
        select * from user where id = #{id}     
[*]
    </select>     
[*]
</mapper>  



<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="cn.dcr.mybatis.entity.UserMapper">
<select id="selectOne" parameterType="long" resultType="cn.dcr.mybatis.entity.User">
select * from user where id = #{id}
</select>
</mapper>
  第四步,写MyBatis配置文件,configuration.xml

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>  
[*]
    <environments default="development">    
[*]
        <environment id="development">    
[*]
            <transactionManager type="JDBC"/>    
[*]
            <dataSource type="POOLED">    
[*]
                <property name="driver" value="com.mysql.jdbc.Driver"/>    
[*]
                <property name="url" value="jdbc:mysql://localhost:3306/test"/>    
[*]
                <property name="username" value="root"/>    
[*]
                <property name="password" value="root"/>    
[*]
            </dataSource>    
[*]
        </environment>    
[*]
    </environments>    
[*]
    <mappers>    
[*]
        <mapper resource="cn/dcr/mybatis/entity/User.xml"/>    
[*]
    </mappers>  
[*]
</configuration>  



<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="cn/dcr/mybatis/entity/User.xml"/>
</mappers>
</configuration>
  第五步,编写Util类,用于初始化SqlSessionFactory

Java代码  





[*]package cn.dcr.mybatis.util;   
[*]  
[*]
import java.io.IOException;   
[*]
import java.io.Reader;   
[*]  
[*]
import org.apache.ibatis.io.Resources;   
[*]
import org.apache.ibatis.session.SqlSessionFactory;   
[*]
import org.apache.ibatis.session.SqlSessionFactoryBuilder;   
[*]  
[*]
public class Util {   
[*]       
[*]
    private static SqlSessionFactory sqlSessionFactory = null;   
[*]       
[*]
    static {   
[*]
        String resource = "configuration.xml";    
[*]           
[*]
        Reader reader = null;   
[*]
        try {   
[*]            reader = Resources.getResourceAsReader(resource);   
[*]
        } catch (IOException e) {   
[*]            e.printStackTrace();   
[*]        }          
[*]           
[*]
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);   
[*]    }   
[*]       
[*]
    public static SqlSessionFactory getSqlSessionFactory(){   
[*]
        return sqlSessionFactory;   
[*]    }   
[*]}  



package cn.dcr.mybatis.util;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Util {
private static SqlSessionFactory sqlSessionFactory = null;
static {
String resource = "configuration.xml";
Reader reader = null;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
}
public static SqlSessionFactory getSqlSessionFactory(){
return sqlSessionFactory;
}
}
  第六步,编写Dao类,用于封装增删改查等操作(为简单起见,这个类只有一个根据id查询出对应的User对象的方法)

Java代码  





[*]package cn.dcr.mybatis.dao;   
[*]  
[*]
import org.apache.ibatis.session.SqlSession;   
[*]  
[*]
import cn.dcr.mybatis.entity.User;   
[*]
import cn.dcr.mybatis.util.Util;   
[*]  
[*]
public class UserDao {   
[*]
    public User query(Long id){   
[*]        SqlSession session = Util.getSqlSessionFactory().openSession();   
[*]
        User user = null;   
[*]
        try{   
[*]
             user = (User)session.selectOne("cn.dcr.mybatis.entity.UserMapper.selectOne", id);   
[*]
        }catch(Exception e){   
[*]            e.printStackTrace();   
[*]
        }finally{   
[*]            session.close();   
[*]        }   
[*]
        return user;   
[*]    }   
[*]}  



package cn.dcr.mybatis.dao;
import org.apache.ibatis.session.SqlSession;
import cn.dcr.mybatis.entity.User;
import cn.dcr.mybatis.util.Util;
public class UserDao {
public User query(Long id){
SqlSession session = Util.getSqlSessionFactory().openSession();
User user = null;
try{
user = (User)session.selectOne("cn.dcr.mybatis.entity.UserMapper.selectOne", id);
}catch(Exception e){
e.printStackTrace();
}finally{
session.close();
}
return user;
}
}
  第七步,编写测试类

Java代码  





[*]package cn.dcr.mybatis.test;   
[*]  
[*]
import cn.dcr.mybatis.dao.UserDao;   
[*]
import cn.dcr.mybatis.entity.User;   
[*]  
[*]
public class UserTest {   
[*]
    public static void main(String[] args){   
[*]
        UserDao userDao = new UserDao();   
[*]        User user = userDao.query(1L);   
[*]           
[*]        System.out.println(user.getId());   
[*]        System.out.println(user.getUserName());   
[*]        System.out.println(user.getPassword());   
[*]        System.out.println(user.getAge());   
[*]    }   
[*]}  



package cn.dcr.mybatis.test;
import cn.dcr.mybatis.dao.UserDao;
import cn.dcr.mybatis.entity.User;
public class UserTest {
public static void main(String[] args){
UserDao userDao = new UserDao();
User user = userDao.query(1L);
System.out.println(user.getId());
System.out.println(user.getUserName());
System.out.println(user.getPassword());
System.out.println(user.getAge());
}
}
  运行一下,能够成功查询出对应的记录。
  先到这,等有功夫在研究一下详细用法。
  比较详细了,不上传源码了。
页: [1]
查看完整版本: mybatis 基本