MyBatis-搭建MyBatis开发环境一(MyEclipse版)

一、引入MyBatis及其相关jar包
1、mybatis-3.2.2.jar:mybatis的jar包
2、mysql-connector-java-5.1.0-bin.jar:MySQL数据库jar包
3、log4j-1.2.16.jar:日志、用于开发显示提示信息如执行的SQL语句及参数


二、新建mybatis-config.xml配置文件

MyBatis-搭建MyBatis开发环境一(MyEclipse版)_第1张图片

1、在项目下新建一个源码文件夹resources,在里面新建一个xml取名为mybatis-config.xml

2、mybatis-config.xml表头信息如下:



三、在mybatis-config.xml中配置数据库相关信息

<configuration>
    
    <environments default="development">
        
        <environment id="development">
            
            <transactionManager type="JDBC"/>
            
            <dataSource type="POOLED">
                
                <property name="driver" value="${driver}" />
                <property name="url" value="${url}" />
                <property name="username" value="${username}" />
                <property name="password" value="${password}" />
            dataSource>
        environment>
    environments>
configuration>

四、创建数据库properties文件

MyBatis-搭建MyBatis开发环境一(MyEclipse版)_第2张图片

1、在resources源码文件夹下新建一个properties文件,这里我取名叫jdbc.properties,然后再里面写入数据库连接相关信息。

2、然后在mybatis-config.xml文件内配置jdbc.properties文件路径

MyBatis-搭建MyBatis开发环境一(MyEclipse版)_第3张图片


五、配置Log4j,让控制台输出SQL语句及参数相关信息

MyBatis-搭建MyBatis开发环境一(MyEclipse版)_第4张图片

1、在resources文件夹下新建log4j.properties文件

2、log4j.properties参考内容

log4j.rootLogger=DEBUG,CONSOLE,file
#log4j.rootLogger=ERROR,ROLLING_FILE
log4j.logger.cn.jbit.dao=debug
log4j.logger.com.ibatis=debug 
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug 
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug 
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug 
log4j.logger.java.sql.Connection=debug 
log4j.logger.java.sql.Statement=debug 
log4j.logger.java.sql.PreparedStatement=debug 
log4j.logger.java.sql.ResultSet=debug 
log4j.logger.org.tuckey.web.filters.urlrewrite.UrlRewriteFilter=debug

######################################################################################
# Console Appender  \u65e5\u5fd7\u5728\u63a7\u5236\u8f93\u51fa\u914d\u7f6e
######################################################################################
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=error
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern= [%p] %d %c - %m%n


######################################################################################
# DailyRolling File  \u6bcf\u5929\u4ea7\u751f\u4e00\u4e2a\u65e5\u5fd7\u6587\u4ef6\uff0c\u6587\u4ef6\u540d\u683c\u5f0f:log2009-09-11
######################################################################################
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern=yyyy-MM-dd
log4j.appender.file.File=log.log
log4j.appender.file.Append=true
log4j.appender.file.Threshold=error
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%n


log4j.logger.com.opensymphony.xwork2=error  

3、在mybatis-config.xml配置文件内添加如下配置

    <settings>
        
        <setting name="logImpl" value="LOG4J"/>
    settings>

六、测试
1、在数据库中新建表emp

MyBatis-搭建MyBatis开发环境一(MyEclipse版)_第5张图片

2、创建表对应的实体类

MyBatis-搭建MyBatis开发环境一(MyEclipse版)_第6张图片

3、新建EmpMapper.xml文件

MyBatis-搭建MyBatis开发环境一(MyEclipse版)_第7张图片

4、EmpMapper.xml表头信息如下:


5、编写EmpMapper.xml文件

<mapper namespace="com.bc.dao.EmpMapper">
    
    <insert id="addEmp" parameterType="com.bc.pojo.Emp">
        insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) 
            values(#{empno},#{ename},#{job},#{mgr},#{hiredate},#{sal},#{comm},#{deptno})
    insert>

    
    <update id="updateEmp" parameterType="com.bc.pojo.Emp">
        update emp set ename=#{ename},job=#{job},mgr=#{mgr},hiredate=#{hiredate},sal=#{sal},
            comm=#{comm},deptno=#{deptno} 
                where empno=#{empno}
    update>

    
    <select id="getEmpList" resultType="com.bc.pojo.Emp">
        select * from Emp
    select>

    
    <delete id="deleteEmp" parameterType="com.bc.pojo.Emp">
        delete from Emp where empno=#{empno}
    delete>
mapper>

MyBatis-搭建MyBatis开发环境一(MyEclipse版)_第8张图片

6、在mybatis-config.xml中引入EmpMapper.xml(不要忘记)

<mappers>
    
    <mapper resource="com/bc/dao/EmpMapper.xml"/>
mappers>

7、测试代码

public class EmpTest {

    private Logger logger = Logger.getLogger(EmpTest.class);

    @Test
    /**添加Emp测试*/
    public void addEmpTest() {
        //mybatis-config.xml文件路径
        String resource = "mybatis-config.xml";
        SqlSession sqlSession = null;
        //要插入的Emp对象
        Emp emp = new Emp();
        emp.setEname("测试");
        emp.setDeptno(1);

        try {
            //1 读取配置文件(mybatis-config.xml)的输入流
            InputStream is = Resources.getResourceAsStream(resource);
            //2 创建sqlSessionFactory对象,完成对配置文件的读取
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
            //3 创建sqlSession
            sqlSession = factory.openSession();
            //4 调用mapper文件进行数据操作(调用之前必须要把mapper文件加入到mybatis-config.xml)
            sqlSession.insert("com.bc.dao.EmpMapper.addEmp", emp);
            //5 提交事务
            sqlSession.commit();
        } catch (Exception e) {
            e.printStackTrace();
            //出现异常回滚事务
            sqlSession.rollback();
        } finally {
            //关闭会话
            sqlSession.close();
        }
    }

    /**更新Emp测试*/
    public void updateEmpTest() {
        //mybatis-config.xml文件路径
        String resource = "mybatis-config.xml";
        SqlSession sqlSession = null;
        //要更新的Emp对象
        Emp emp = new Emp();
        emp.setEmpno(65);
        emp.setEname("更新测试");

        try {
            //1 读取配置文件(mybatis-config.xml)的输入流
            InputStream is = Resources.getResourceAsStream(resource);
            //2 创建sqlSessionFactory对象,完成对配置文件的读取
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
            //3 创建sqlSession
            sqlSession = factory.openSession();
            //4 调用mapper文件进行数据操作(调用之前必须要把mapper文件加入到mybatis-config.xml)
            sqlSession.update("com.bc.dao.EmpMapper.updateEmp", emp);
            //5 提交事务
            sqlSession.commit();
        } catch (Exception e) {
            e.printStackTrace();
            //出现异常回滚事务
            sqlSession.rollback();
        } finally {
            //关闭会话
            sqlSession.close();
        }
    }

    /**查询Emp测试*/
    public void getEmpListTest() {
        //mybatis-config.xml文件路径
        String resource = "mybatis-config.xml";
        SqlSession sqlSession = null;
        //查询结果集
        List empList = new  ArrayList<>();

        try {
            //1 读取配置文件(mybatis-config.xml)的输入流
            InputStream is = Resources.getResourceAsStream(resource);
            //2 创建sqlSessionFactory对象,完成对配置文件的读取
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
            //3 创建sqlSession
            sqlSession = factory.openSession();
            //4 调用mapper文件进行数据操作(调用之前必须要把mapper文件加入到mybatis-config.xml)
            empList = sqlSession.selectList("com.bc.dao.EmpMapper.getEmpList");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //关闭会话
            sqlSession.close();
        }

        //遍历数据
        for (Emp emp : empList) {
            logger.debug(emp.getEname());
        }
    }

    /**删除Emp测试*/
    public void deleteEmpTest() {
        //mybatis-config.xml文件路径
        String resource = "mybatis-config.xml";
        SqlSession sqlSession = null;
        //要删除的Emp对象
        Emp emp = new Emp();
        emp.setEmpno(65);

        try {
            //1 读取配置文件(mybatis-config.xml)的输入流
            InputStream is = Resources.getResourceAsStream(resource);
            //2 创建sqlSessionFactory对象,完成对配置文件的读取
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
            //3 创建sqlSession
            sqlSession = factory.openSession();
            //4 调用mapper文件进行数据操作(调用之前必须要把mapper文件加入到mybatis-config.xml)
            sqlSession.delete("com.bc.dao.EmpMapper.deleteEmp", emp);
            //5 提交事务
            sqlSession.commit();
        } catch (Exception e) {
            e.printStackTrace();
            //出现异常回滚事务
            sqlSession.rollback();
        } finally {
            //关闭会话
            sqlSession.close();
        }
    }
}

8、执行结果(以插入为例)

MyBatis-搭建MyBatis开发环境一(MyEclipse版)_第9张图片

七、总结
从以上代码可以看出,有很多臃肿的地方,比如类名使用完全包名+类名可以使用别名优化,测试代码很多重复性的代码可以提取出来等,这些问题参考下一篇博客
下一篇:MyBatis-搭建MyBatis开发环境二(MyEclipse版)

你可能感兴趣的:(MyBatis)