mybatis学习(一)

来源:互联网 发布:sql删除完全重复数据 编辑:程序博客网 时间:2024/06/05 06:11

基础知识

  1. mybatis框架原理 (掌握)
  2. mybatis入门程序用户的增、删、改、查
  3. mybatis开发dao两种方法:
    - 原始dao开发方法(程序需要编写dao接口和dao实现类)(掌握)
    - mybaits的mapper接口(相当于dao接口)代理开发方法(掌握)
  4. mybatis配置文件SqlMapConfig.xml
  5. mybatis核心:
    - mybatis输入映射(掌握)
    - mybatis输出映射(掌握)
  6. mybatis的动态sql(掌握)

一.原始dao开发方法

  1. 导jar包(mybatis依赖,mybatis核心,数据库驱动)
  2. 编写全局配置文件 SqlMapConfig.xml 配置数据源,事务,加载映射文件
<?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>    <!-- 和spring整合后 environments配置将废除-->    <environments default="development">        <environment id="development">        <!-- 使用jdbc事务管理-->            <transactionManager type="JDBC" />        <!-- 数据库连接池-->            <dataSource type="POOLED">                <property name="driver" value="com.mysql.jdbc.Driver" />                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" />                <property name="username" value="root" />                <property name="password" value="admin" />            </dataSource>        </environment>    </environments>    <!-- 加载映射文件 -->    <mappers>        <mapper resource="sqlmap/User.xml"/>        <mapper resource="mapper/UserMapper.xml"/>    </mappers></configuration>

3.新建User.xml,编写sql查询语句

<?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="test">    <select id="findUserById" parameterType="int" resultType="cn.lovejavaq.po.User">        select * from user where id=#{id}    </select>    <select id="findUserByName" parameterType="java.lang.String" resultType="cn.lovejavaq.po.User">        select * from user where username like '%${value}%'    </select>    <insert id="insertUser" parameterType="cn.lovejavaq.po.User">        <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">            select LAST_INSERT_ID()        </selectKey>        insert into user(username,birthday,sex,address) value(#{username},#{birthday},#{sex},#{address})    </insert>    <delete id="deleteUser" parameterType="int">        delete from user where id=#{id}    </delete>    <update id="updateUser" parameterType="cn.lovejavaq.po.User">        update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id}    </update></mapper>

4.测试

@Test    public void findUserByIdTest() throws IOException {        String resource = "SqlMapConfig.xml";        InputStream inputStream = Resources.getResourceAsStream(resource);        //创建会话工厂        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);        SqlSession sqlSession = sessionFactory.openSession();        User user = sqlSession.selectOne("test.findUserById", 10);        System.out.println(user);        sqlSession.close();    }

5.dao方式,新建UserDao

public interface UserDao {    //id查询用户信息    public User findUserById(int id) throws Exception;    //添加    public void insertUser(User user)throws Exception;    //删除用户信息    public void deleteUser(int id)throws Exception;}

6.新建UserDaoImpl

public class UserDaoImpl implements UserDao {    private SqlSessionFactory sqlSessionFactory;    public UserDaoImpl(SqlSessionFactory sqlSessionFactory) {        this.sqlSessionFactory = sqlSessionFactory;    }    public User findUserById(int id) throws Exception {        SqlSession sqlSession = sqlSessionFactory.openSession();        User user = sqlSession.selectOne("test.findUserById", id);        sqlSession.close();        return user;    }}

7.测试

public class UserDaoTest {    private SqlSessionFactory sqlSessionFactory;    @Before    public void setUp() throws IOException {        String resource = "SqlMapConfig.xml";        InputStream inputStream = Resources.getResourceAsStream(resource);        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);    }    @Test    public void testFindUserById() throws Exception {        UserDao userDao = new UserDaoImpl(sqlSessionFactory);        User user = userDao.findUserById(1);        System.out.println(user);    }}
原创粉丝点击