MyBatis01--MyBatis简介

来源:互联网 发布:ubuntu设置分辨率命令 编辑:程序博客网 时间:2024/06/05 06:10

MyBatis是什么?

MyBatis是一款支持普通SQL查询、存储过程和高级映射的持久层框架。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java 对象)映射成数据库中的记录。

orm工具的基本思想

无论是用过的 hibernate,Mybatis,你都可以发现他们有一个共同点:
1.从配置文件(通常是 XML 配置文件中)获取数据库连接信息,通过配置信息构建SqlSessionFactory
2.由SqlSessionFactor 产生 sqlSession,打开数据库会话。
3.在 session 中完成对数据的增删改查和事务提交等.
4.在用完之后关闭 session 。
5.在Java对象和数据库之间有做 mapping 的配置文件,也通常是 xml 文件。


在上面,我们提到了通过SqlSessionFactory产生sqlSession,这里介绍一下SqlSession的作用

SqlSession的作用

1、向sql语句传入参数
2、执行sql语句
3、获取执行sql语句的结果
4、对事物的控制


环境搭建

先建一张简单的user表:

create table `user` (  `id` int(10) not null auto_increment,  `userName` varchar(50) default null,  `userAge` int(11) default null,  `userAddress` varchar(200) default null,  primary key (`id`)) ENGINE=InnoDB auto_increment=2 default charset=utf8;insert into `user` values('1', 'zhangsan', '20', 'shandong');

一个名为user的表格,里面存放了user相关字段,然后我们需要有一个Java实体类与之对应。

public class User {    private int id;    private String userName;    private String userAge;    private String userAddress;    public User() {        super();    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getUserName() {        return userName;    }    public void setUserName(String userName) {        this.userName = userName;    }    public String getUserAge() {        return userAge;    }    public void setUserAge(String userAge) {        this.userAge = userAge;    }    public String getUserAddress() {        return userAddress;    }    public void setUserAddress(String userAddress) {        this.userAddress = userAddress;    }}

设置 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>    <typeAliases>         <typeAlias alias="User" type="cn.edu.ldu.model.User"/>     </typeAliases>     <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://127.0.0.1:3306/mybatis" />            <property name="username" value="root"/>            <property name="password" value="123456"/>            </dataSource>        </environment>    </environments>    <mappers>        <mapper resource="cn/edu/ldu/model/User.xml"/>    </mappers></configuration>

这是最简单的config.xml的写法,关于config.xml的具体介绍,将在下面一篇文章里进行介绍。

建立User 的映射文件:user.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="cn.edu.ldu.models.UserMapper">    <select id="selectUserByID" parameterType="int" resultType="User">        select * from `user` where id = #{id}    </select></mapper>

java代码:

首先,建立一个IUserOperation接口类:

public interface IUserOperation {    public User selectUserByID(int id);}

Test测试类:

public class Test {    private static SqlSessionFactory sqlSessionFactory;    private static Reader reader;    static {        try {            reader = Resources.getResourceAsReader("config.xml");            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    public static SqlSessionFactory getSessionFactory() {        return sqlSessionFactory;    }    /**     * 通过id查询     * @param id     */    public void selectUserByID(int id) {        SqlSession session = sqlSessionFactory.openSession();        try {            IUserOperation iUserOperation = session.getMapper(IUserOperation.class);            User user = iUserOperation.selectUserByID(id);            System.out.println("result:"+user.getId()+","+user.getUserName());        } finally {            session.close();        }    }    public static void main(String[] args) {        Test testUser=new Test();        testUser.selectUserByID(2);    }}

导入jar包:
这里写图片描述

运行结果:

这里写图片描述

0 0
原创粉丝点击