mybatis-2

来源:互联网 发布:路由器映射加端口号 编辑:程序博客网 时间:2024/05/19 16:36

一、使用Mapper动态代理方式的第一个demo

1.搭建开发环境

(1)在github下载mybatis    下载地址:**https://github.com/mybatis/mybatis-3**   将以下包加入到工程

这里写图片描述
mysql的包需要自己去下载

(2)创建如下目录结构

这里写图片描述

2.创建User类

public class User {    private Long id;    private String name;    private String password;    //此处需要getter setter方法}

3.编写配置文件

(1)编写jdbc.properties
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatisjdbc.username=rootjdbc.password=mysqladmin
(2)编写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>    <!--读取jdbc.properties文件-->    <properties resource="config/jdbc.properties"></properties>    <typeAliases>        <package name="pojo"></package>    </typeAliases>    <environments default="development" >        <environment id="development" >            <transactionManager type="JDBC"/>            <dataSource type="POOLED" >                <property name="driver" value="${jdbc.driver}"/>                <property name="url" value="${jdbc.url}"/>                <property name="username" value="${jdbc.username}"/>                <property name="password" value="${jdbc.password}"/>            </dataSource>        </environment>    </environments>    <!--扫描Mapper接口和*.Mapper.xml配置文件        注意配置文件和接口需要放在同一个文件夹下,不然无法扫描到    -->    <mappers>        <package name="mapper"/>    </mappers></configuration>
(3)编写UserMapper.xml和UserMapper接口
<?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="mapper.UserMapper">    <select id="findUserById"  parameterType="long" resultType="user">        SELECT * FROM t_user WHERE id = #{id}    </select>    <select id="findUsersByName" parameterType="String" resultType="user">        SELECT * FROM  t_user WHERE name like '%${value}%';    </select>    <insert id="insertUser" parameterType="user">    INSERT  INTO t_user(name,password) VALUES (#{name},#{password})    </insert>    <delete id="deleteUser" parameterType="long">      DELETE  FROM t_user WHERE id = #{id}    </delete>    <update id="updateUser" parameterType="user">        UPDATE  t_user set name=#{name},password=#{password}        WHERE  id = #{id}    </update></mapper>
public interface UserMapper {    public void insertUser(User user);    public void updateUser(User user);    public void deleteUser(Long id);    public User findUserById(Long id);    public List<User> findUsersByName(String name);}

4.编写增删改查方法

public class Main {    public static void main(String[] args) throws IOException {        //1.生成sqlSessionFactory        String resource = "config/mybatis-config.xml";        InputStream inputStream = Resources.getResourceAsStream(resource);        SqlSessionFactory sqlSessionFactory = null;        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);        SqlSession session = null;        try{            session = sqlSessionFactory.openSession();            UserMapper userMapper = session.getMapper(UserMapper.class);            //此处暂时省略,见下文            }catch (Exception e){                System.err.println(e.getMessage());                session.rollback();            }finally {                if(session != null){                    session.close();            }        }    }}
上文省略部分见此处
             /**             * 增加             */            User user = new User();            user.setName("张三三");            user.setPassword("121212");            userMapper.insertUser(user);            session.commit();
             /**             * 删除             */             userMapper.deleteUser(12L);             session.commit();
             /**             * 修改             */            User user = userMapper.findUserById(1L);            user.setName("jackson");            userMapper.updateUser(user);            session.commit();
             /**             * 查询单个             */            User user = userMapper.findUserById(1L);            System.out.println(user.toString());            /**             * 查询所有             */            List<User> list = userMapper.findUsersByName("张");            for (User user : list) {                System.out.println(user.toString());            }