mybatis手工引入

wylc123 1年前 ⋅ 713 阅读

1.Mybatis 需要一个核心的 .jar 包(mybatis-3.2.8.jar),和两个支持的 .jar包(cglib-2.2.jar,asm-3.3.jar).

2. 创建核心的的配置文件 1.连接数据库的参数 名:mysql-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>
  <environments default="environment">
    <environment id="environment">
      <!-- JDBC不是告之mybatis直连操作的意思,告之转换协议需要 mysql...jar -->
     <transactionManager type="JDBC"></transactionManager>
     <!-- POOLED:使用缓存方式解析DB -->
     <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/book?useUnicode=true&amp;characterEncoding=utf-8"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
     </dataSource>
    </environment>
  </environments>
  <mappers>
    <!-- 加载各个表和实体类对象映射关系的xml -->
    <mapper resource="com/web/mybatis/userSql.xml"/>
  </mappers>
</configuration>

3、连接针对需要操作表的映射关系 名:userSql.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="usersMapper">
  <!-- 针对users表相关数据库表的映射配置文件 -->
  <resultMap type="com.web.entity.Users" id="userMap">
      <id column="uid" property="uid" javaType="Integer" jdbcType="INTEGER"/>
      <result column="uname" property="uname" javaType="string" jdbcType="VARCHAR"/>
      <result column="upwd" property="upwd" jdbcType="VARCHAR" javaType="string" />
      <result column="usex" property="usex" jdbcType="VARCHAR" javaType="string" />
      <result column="udid" property="udid" jdbcType="INTEGER" javaType="Integer" />
      <result column="udate" property="udate" jdbcType="VARCHAR" javaType="string" />
      <result column="ulogo" property="ulogo" jdbcType="VARCHAR" javaType="string" />
      <association property="dept" javaType="com.web.entity.Dept" resultMap="deptMap"></association>
  </resultMap>
  <resultMap type="com.web.entity.Dept" id="deptMap">
     <id column="id" property="id" javaType="Integer" jdbcType="INTEGER"/>
     <result column="d_name" property="name" javaType="string" jdbcType="VARCHAR"/>
  </resultMap>
  <!-- 数据查询语句-->
  <select id="SelectUser" resultMap="userMap" parameterType="com.web.entity.Users">
    select * from users where uname like #{uname}
  </select>
</mapper>

其中< id />是主键,column=”“是数据库的字段名,property=”“是实体类中对映的属性名。

4、创建Mybatis工厂连接池的启动类(自定义),一方面,其担任多线程连接池.jar入口的角色,另一方面,激活连接池.jar

package com.web.mybatis;

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;

/**
 * mybatis 连接池jar 入口
 * 当mybatis被Spring整合的时候该类不存在
 * @author Administrator
 *
 */
public class MysqlMyabitsSessionFactory {
    //创建工程连接池的对象,也就是线程的对象
    private static SqlSessionFactory sqlSession=null;
    private static MysqlMyabitsSessionFactory mySession=null;
    //
    public MysqlMyabitsSessionFactory() {
        //加载核心的配置文件 mysql-config.xml
        String resource="com/web/mybatis/mysql-config.xml";
        //创建读取该配置文件的IO流
        try {
            //创建mybatis Reader读取配置文件的对象
            Reader read=Resources.getResourceAsReader(resource);
            //通过配置文件对象来获取操作线程
            sqlSession=new SqlSessionFactoryBuilder().build(read);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    //返回当前的类对象
    public static MysqlMyabitsSessionFactory getInstance(){
        if(mySession==null){
            return new MysqlMyabitsSessionFactory();
        }
        return mySession;
    }
    public static SqlSessionFactory getSqlSessionFactory(){
        return sqlSession;
    }
}

5.创建一个类,实现select操作

package com.web.control;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import com.web.entity.Users;
import com.web.mybatis.MysqlMyabitsSessionFactory;

public class UsersModel {
    //mybatis连接池对象
    private SqlSession sqlSession=null;
    public UsersModel() {
        // TODO Auto-generated constructor stub
        if(sqlSession==null){
            sqlSession=MysqlMyabitsSessionFactory.getInstance()
                    .getSqlSessionFactory().openSession();
        }
    }
    public List<Users> SelectUsers(){
        Users user=new Users();
        user.setUname("%ete%");
        List<Users> list=this.sqlSession.selectList("SelectUser", user);
//              ("SelectUser");
        return list;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        UsersModel um=new UsersModel();
        List<Users> ls=um.SelectUsers();
        for (Users users : ls) {
            System.out.println(users.getUid()+"-"+users.getUname1());
        }
    }

}

6.Mybatis接口开发模式 只需在上面的程序稍作修改 1.我们先在com.web.mapper包下建立一个实现接口创建一个查询方法

package com.web.mapper;

import java.util.List;

import com.web.entity.User;

public interface IUserMappler {
     public List<User> SearchUser(User user);
     public int DeleteUser(User user);
}

参考:

Mabitis入门


注意:本文归作者所有,未经作者允许,不得转载

更多内容请访问:IT源点
相关文章推荐

全部评论: 0

    我有话说: