• 优化mybatis


    在mybatis快速入门中有些地方可以优化:

    1.可以把mybatis配置文件和操作文件开,方便管理,src源文件夹放操作文件,创一个resources源文件夹放mybatis配置文件。

    2mybatis配置文件中的数据源配置可以单独放到一个db.properties(属性文件)。

    db.properties文件(放在和mybatis配置文件同目录下):

    #数据源(数据库)配置信息

    driver=com.mysql.jdbc.Driver

    url=jdbc:mysql://127.0.0.1:3306/mybatis

    username=root

    password=123

    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>

           <!-- 导入属性文件 -->

           <properties resource="db.properties"></properties>

           <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>

           <!-- 配置映射文件UserMapper.xml -->

           <mappers>

                  <mapper resource="com/zhiyou100/kfs/mapper/UsersMapper.xml"/>

           </mappers>

    </configuration>

    3.加入log4j日志文件(加入lo4j的jar包和配置一个log4j.properties)只能是这个名称:

    log4j.properties,

    log4j.rootLogger=DEBUG, Console

    #Console

    log4j.appender.Console=org.apache.log4j.ConsoleAppender

    log4j.appender.Console.layout=org.apache.log4j.PatternLayout

    log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

    log4j.logger.java.sql.ResultSet=INFO

    log4j.logger.org.apache=INFO

    log4j.logger.java.sql.Connection=DEBUG

    log4j.logger.java.sql.Statement=DEBUG

    log4j.logger.java.sql.PreparedStatement=DEBUG

    4.可以为java的类或包起别名,这样可以不用写全类名那么麻烦。

           <typeAliases>

                  <!-- typeAlias:为类起别名,用_Users 调用-->

                  <typeAlias type="com.zhiyou100.kfs.bean.Users" alias="_Users"/>

           </typeAliases>

           <typeAliases>

                  <!-- package:为包起别名,包内的类可以直接用类名调用 -->

                  <package name="com.zhiyou100.kfs"/>

           </typeAliases>

    5.UserMapper.xml映射文件结合UserMapper.dao接口一起使用

    UserMapper.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">

    <!-- namespace是命名空间,和dao一起那么namespace要和dao全类名一致 -->

    <mapper namespace="com.zhiyou100.kfs.dao.UserMapper">

           <!--

                  id:相当于dao接口方法名称,

                  parameterType:传入参数类型(输入类型),要写全类名,相当于dao里的参数列表类型

                  resultType:传出参数类型(输出类型),要写全类名,相当于道理的返回值类型

            -->

            <!-- 通过id查询 -->

           <select id="selectById" parameterType="int"

                  resultType="com.zhiyou100.kfs.bean.Users">

                  select * from users where id=#{id}

           </select>

    </mapper>

    UserMapper.java接口:

    package com.zhiyou100.kfs.dao;

    import com.zhiyou100.kfs.bean.Users;

    public interface UserMapper {

           /**

            * 根据id查询用户

            * @param id

            * @return

            */

           /*

            * 方法名和UserMapper.xml里的id一致

            * 输入参数要和UserMapper.xml里的parameterType类型一致

            * 输出结果集要和UserMapper.xml里的resultType类型一致

            */

           public Users selectById(int id);

    }

    单元测试:

             @Test

             void test() throws Exception {

                       //1.获取配置文件config.xml加入到io流中

                       InputStream inputStream = Resources.getResourceAsStream("config.xml");

                       //2.通过SqlSessionFatoryBuilder的builder创建sqlsessionfatory

                       SqlSessionFactory sqlSessionFatory = new SqlSessionFactoryBuilder().build(inputStream);

                       //3.通过sqlSessionFactory的openSession方法创建SqlSession

                       SqlSession sqlSession=sqlSessionFatory.openSession();

                       //4.通过sqlSession的getMapper传入dao全类名的方法创建UserMapper对象

                       UserMapper um=sqlSession.getMapper(com.zhiyou100.kfs.dao.UserMapper.class);

                       //5.调用UserMapper的selectById来使用通过id查询一个用户

                       Users user=um.selectById(1);

                       System.out.println(user);

                       //最后一个页是很重要的一个:关闭资源

                       sqlSession.close();

             }

  • 相关阅读:
    HDU 1335 Basically Speaking(进制转换)
    2016年团体程序设计天梯赛-决赛 L2-3. 互评成绩(25)
    2016年团体程序设计天梯赛-决赛 L1-8. Left-pad(20)
    2016年团体程序设计天梯赛-决赛 L1-7. 到底是不是太胖了(10)
    2016年团体程序设计天梯赛-决赛 L1-6. 一帮一(15)
    2016年团体程序设计天梯赛-决赛 L1-5. 是不是太胖了(5)
    2016年团体程序设计天梯赛-决赛 L1-3. 出租(20)
    2016年团体程序设计天梯赛-决赛 L1-2. I Love GPLT(5)
    2016年团体程序设计天梯赛-决赛 L1-1. 正整数A+B(15)
    Codeforces Round #321 (Div. 2) C. Kefa and Park dfs
  • 原文地址:https://www.cnblogs.com/kfsrex/p/11439628.html
Copyright © 2020-2023  润新知