MyBatis学习总结

一、MyBatis简介

  1. MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
  2. Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回

二、MyBatis框架搭建

(一)、加载jar包(mybatis-3.2.7.jar和数据库驱动包)

(二)、创建接口

public interface IAreaDao {
     
    //如果参数为多个值时,需要用@Param进行映射
    String getName(@Param("id")String id);
}

(三)、创建名为Test的类

public class Test {
     
    public static void main(String[] args) {
     
        //连接数据库测试
        //加载全局配置文件
        try{
     
            InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
            //SqlSession对象表示一次数据库连接
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            SqlSession sqlSession = sqlSessionFactory.openSession(true);//true,则自动提交事务;false,则需要手动commit进行提交事务
            //sqlSession获取接口的实现类对象,mybatis自动实现
            IAreaDao areaDao = sqlSession.getMapper(com.jd.area.IAreaDao.class);

            IPersonDao personDao = sqlSession.getMapper(com.jd.person.IPersonDao.class);
            String name = areaDao.getName("000f9a36-cdc1-4784-9ffc-fe1d8a4a0d15");
            System.out.println(name);
            /*
            //如果上面方法没有写true,手动提交事务
            sqlSession.commit();
            */
        }catch (Exception e){
     
            e.printStackTrace();
        }
    }
}

(四)、配置全局配置文件(mybatis-config.xml)



<configuration>

    

    
    <settings>
        
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    settings>

    <typeAliases>
        
        <typeAlias type="java.lang.String" alias="kaa">typeAlias>
    typeAliases>
    
    <environments default="dev">
        
        <environment id="dev">
            <transactionManager type="JDBC">transactionManager>
            <dataSource type="POOLED">
                <property name="username" value="root"/>
                <property name="password" value="root"/>
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC"/>
                
            dataSource>
        environment>

        <environment id="test">
            <transactionManager type="JDBC">transactionManager>
            <dataSource type="POOLED">
                <property name="username" value="root"/>
                <property name="password" value="root"/>
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC"/>
            dataSource>
        environment>
    environments>
    
    <mappers>
        
        <mapper resource="area.xml">mapper>
        <mapper resource="person.xml">mapper>
    mappers>

configuration>

(五)、配置映射文件



<mapper namespace="com.jd.area.IAreaDao">
    <select id="getName" resultType="java.lang.String">
        
        select name from area where id = #{id}
    select>
mapper>

你可能感兴趣的:(Java中级,mybatis)