MyBatis框架

搭建MyBatis框架

  1. 创建Maven项目
  2. 在pom.xml配置文件中添加MyBatis框架需要的依赖``
<dependencies>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.35</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.1</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.28</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <!--编译的时候同时也把包下面的xml同时编译进去-->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>
  1. 创建MyBatis配置文件mybatis-config.xml,配置数据库信息
<properties resource="db.properties"></properties>
   <environments default="development">
       <environment id="development">
           <transactionManager type="JDBC"/>
           <dataSource type="POOLED">
               <property name="driver" value="${db.driver}"/>
               <property name="url" value="${db.url}"/>
               <property name="username" value="${db.username}"/>
               <property name="password" value="${db.password}"/>
           </dataSource>
       </environment>
   </environments>
  1. 创建实体类User
public class User {
   private int userId;
   private String userLoginName;
   private String userPwd;
   private String userName;
   private int state;
   private Date createTime;
   private int delState;

   public User() {
   }

   public User(String userLoginName, String userPwd, String userName, int state, Date createTime, int delState) {
       this.userLoginName = userLoginName;
       this.userPwd = userPwd;
       this.userName = userName;
       this.state = state;
       this.createTime = createTime;
       this.delState = delState;
   }

   public User(int userId, String userLoginName, String userPwd, String userName, int state, Date createTime, int delState) {
       this.userId = userId;
       this.userLoginName = userLoginName;
       this.userPwd = userPwd;
       this.userName = userName;
       this.state = state;
       this.createTime = createTime;
       this.delState = delState;
   }

   public int getUserId() {
       return userId;
   }

   public void setUserId(int userId) {
       this.userId = userId;
   }

   public String getUserLoginName() {
       return userLoginName;
   }

   public void setUserLoginName(String userLoginName) {
       this.userLoginName = userLoginName;
   }

   public String getUserPwd() {
       return userPwd;
   }

   public void setUserPwd(String userPwd) {
       this.userPwd = userPwd;
   }

   public String getUserName() {
       return userName;
   }

   public void setUserName(String userName) {
       this.userName = userName;
   }

   public int getState() {
       return state;
   }

   public void setState(int state) {
       this.state = state;
   }

   public Date getCreateTime() {
       return createTime;
   }

   public void setCreateTime(Date createTime) {
       this.createTime = createTime;
   }

   public int getDelState() {
       return delState;
   }

   public void setDelState(int delState) {
       this.delState = delState;
   }

   @Override
   public String toString() {
       return "User{" +
               "userId=" + userId +
               ", userLoginName='" + userLoginName + '\'' +
               ", userPwd='" + userPwd + '\'' +
               ", userName='" + userName + '\'' +
               ", state=" + state +
               ", createTime=" + createTime +
               ", delState=" + delState +
               '}';
   }
}

  1. 创建UserMapper接口
public interface UserMapper {
    List<User> showUser();//查询所有的用户信息
}
  1. 创建UserMapper接口的映射文件UserMapper.xml,定义SQL语句查询用户信息
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace 定义命名空间,标记当前xml文件指向的Mapper接口-->
<mapper namespace="com.Test.mapper.UserMapper">
    <select id="showUser" resultType="com.qianfeng.bean.User">
        select * from t_user
    </select>
</mapper>
  1. 将创建好的Mapper.xml文件映射到mybatis-config.xml中
<mappers>
        <mapper resource="com/Test/mapper/UserMapper.xml"></mapper>
    </mappers>
  1. 创建测试类测试执行效果,MyBatis框架搭建测试完成!
public class Demo {
    @Test
    public void show(){
        try {
            Reader reader = Resources.getResourceAsReader("mybatis-config.xml");//读取mybatis-config.xml配置文件
            SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);//获取一个SqlSessionFactory工厂
            SqlSession session = ssf.openSession();//从SqlSessionFactory中获取一个SqlSession对象
            /*
                SqlSession对象中的getMapper方法,使用到了设计模式中的动态代理模式
                通过反射技术,在底层动态创建了UserMapper接口的实现类,并实现了UserMapper中的方法
                返回的是一个UserMapper接口实现类的实例
            */
            UserMapper mapper = session.getMapper(UserMapper.class);
            List<User> users = mapper.showUser();
            Iterator<User> it = users.iterator();
            while(it.hasNext()){
                System.out.println(it.next());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

优化:
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="db.properties"></properties>
    <!--给实体类取别名,默认是实体类类名,不区分大小写-->
    <typeAliases>
        <package name="com.Test.bean"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${db.driver}"/>
                <property name="url" value="${db.url}"/>
                <property name="username" value="${db.username}"/>
                <property name="password" value="${db.password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--
            直接导入Mapper.xml文件所在的包,一次性导入所有Mapper.xml文件
            注意!!!
            在使用此方法时,Mapper接口名称必须与Mapper.xml文件名称一致
            系统会自动匹配与xml文件命名一致的接口文件
        -->
        <package name="com.Test.mapper"/>
    </mappers>
</configuration>

Mapper.xml文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace 定义命名空间,标记当前xml文件指向的Mapper接口-->
<mapper namespace="com.Test.mapper.UserMapper">
<!--resultType不区分大小写-->
    <select id="showUser" resultType="uSEr">
        select * from t_user
    </select>
</mapper>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值