MyBatis初级环境搭建

来源:互联网 发布:mac迅雷速度为0 编辑:程序博客网 时间:2024/04/28 18:41

1.导入jar包
MyBatis在github上的主页:https://github.com/mybatis/mybatis-3,直接下载,选择解压后文件中的mybatis-3.3.1.jar
mybatis解压后文件
其他三个文档为用户手册、MyBatis源码以及注解文档。
2.编写config.xml以下为简单模板,没有使用property文件

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configurationPUBLIC "-//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/xy36_mss" /> <!-- url -->                <property name="username" value="root" /><!-- username -->                <property name="password" value="root" /><!-- password -->            </dataSource>        </environment>    </environments>    <mappers>        <mapper  resource="com/yufeng/model/UserMapper.xml"/> <!-- 映射文件 -->    </mappers></configuration>

3.编写JavaBean

package com.yufeng.model;import java.io.Serializable;public class User implements Serializable{    /**     *      */    private static final long serialVersionUID = 8027397040189411533L;    protected String account;    protected String pwd;    protected String status;    protected String userId;    protected String userName;    public String getAccount() {        return account;    }    public void setAccount(String account) {        this.account = account;    }    public String getPwd() {        return pwd;    }    public void setPwd(String pwd) {        this.pwd = pwd;    }    public String getStatus() {        return status;    }    public void setStatus(String status) {        this.status = status;    }    public String getUserId() {        return userId;    }    public void setUserId(String userId) {        this.userId = userId;    }    public String getUserName() {        return userName;    }    public void setUserName(String userName) {        this.userName = userName;    }}

这里需要说明的是:(1)实现 Serializable是为了跨平台之后JavaBean任然可以正常使用。
(2)修饰属性,我习惯使用protected,因为子类可以直接访问属性
4.编写映射文件

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="yufeng.User"> <!-- 命名空间 ,名字要唯一 -->    <sql id="user_sql"><!-- 一个sql语句模板 ,可以用于字符串拼接 -->            user_id as userId,            account,            password as pwd,            user_name as userName,            status    </sql>    <insert id="add" parameterType="com.yufeng.model.User"  ><!-- 插入操作,id在同一命名空间内要唯一,当传入类型为普通类型时,使用parameterType,不需要使用parameterMap关键字 -->    INSERT INTO        SYS_USER            (account,password,user_name)        VALUES            (#{account},#{pwd},#{userName})  <!-- 直接访问对象的属性 -->    </insert>    <select id="select" parameterType="int" resultType="com.yufeng.model.User"><!-- 查询操作操作 -->        select             <include refid="user_sql"></include>        from sys_user where user_id = #{asdf}  <!-- 只有一个属性的时候,参数名字可以随便起 -->    </select>    <select id="list" parameterType="int" resultType="com.yufeng.model.User">        select             <include refid="user_sql"></include>        from sys_user     </select>    <select id="like" parameterType="string" resultType="com.yufeng.model.User">        select             <include refid="user_sql"></include>        from sys_user where user_name like #{ asdf }    </select></mapper>

5.在config.xml中配置映射
在2中已配置

6.查询操作

package com.yufeng.test;import java.io.InputStream;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import com.yufeng.model.User;public class 用户查询操作 {    public static void main(String[] args) {        String path = "mybatis-config.xml";//在src路径下时可以直接这样写        SqlSession session = null;        try {            /** 1.读取session文件 */            InputStream input = Resources.getResourceAsStream(path);            /** 2.创建SessionFactory 相当于建立Connection */            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(input);            /** 3.打开Session,相当于创建Statement */            session = factory.openSession();            /** 4.执行操作*/            System.out.println(session.selectOne("yufeng.User.select", 1));//selectOne的第一个参数是namespace+id        } catch (Exception e) {            e.printStackTrace();        }finally{            /** 6.关闭连接 */            if(session!=null){                session.close();            }        }    }}
0 0