zoukankan      html  css  js  c++  java
  • mybatis中的一点优化问题(数据库连接分开,别名,日志打印)

    一:数据的链接

    1.目录

       

    2.新建一个db.properties

    1 driver=com.mysql.jdbc.Driver
    2 url=jdbc:mysql://127.0.0.1:3308/mybatis
    3 username=root
    4 password=123456

    3.Configuration.xml中引用,以及使用

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
     3 
     4 <configuration>
     5 
     6   <!-- 引用properties -->
     7   <properties resource="com/cao/properties/db.properties"></properties>
     8 
     9   <environments default="development">
    10     <environment id="development">
    11       <transactionManager type="JDBC">
    12         <property name="" value=""/>
    13       </transactionManager>
    14       <dataSource type="UNPOOLED">
    15         <property name="driver" value="${driver}"/>
    16         <property name="url" value="${url}"/>
    17         <property name="username" value="${username}"/>
    18         <property name="password" value="${password}"/>
    19       </dataSource>
    20     </environment>
    21   </environments>
    22 
    23    <mappers>
    24       <mapper resource="com/cao/sql/config/users.xml"/>
    25    </mappers>
    26 
    27 </configuration>

    4.运行程序测试

      运行mainTest类中的单条查询方法。

      

    二:别名

    1.介绍

      在这里有两种使用方法,分别介绍。

      主要变动的地方在于Configuration.xml与User.xml,所以,下面的程序就只粘贴这两种程序,方便做对比。

    2.type属性下的Configuration.xml

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
     3 
     4 <configuration>
     5 
     6   <!-- 引用properties -->
     7   <properties resource="com/cao/properties/db.properties"></properties>
     8 
     9   <!-- 别名的使用,在Users.xml中就可以使用别名代替原本的type的值 -->
    10   <typeAliases>
    11       <typeAlias type="com.cao.bean.User" alias="UserAlia"/>
    12   </typeAliases>
    13   
    14   <environments default="development">
    15     <environment id="development">
    16       <transactionManager type="JDBC">
    17         <property name="" value=""/>
    18       </transactionManager>
    19       <dataSource type="UNPOOLED">
    20         <property name="driver" value="${driver}"/>
    21         <property name="url" value="${url}"/>
    22         <property name="username" value="${username}"/>
    23         <property name="password" value="${password}"/>
    24       </dataSource>
    25     </environment>
    26   </environments>
    27 
    28    <mappers>
    29       <mapper resource="com/cao/sql/config/users.xml"/>
    30    </mappers>
    31 
    32 </configuration>

    3.在Users.xml中的使用

      发现原来的com.cao.bean.User都被替换成了UserAlia了。

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE mapper
     3     PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     4     "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
     5 
     6 <mapper namespace="quickFirst">
     7     <resultMap type="UserAlia" id="User">
     8         <id column="ID" jdbcType="INTEGER" property="id"/>
     9         <result column="NAME" jdbcType="VARCHAR" property="name"/>
    10         <result column="AGE" jdbcType="INTEGER" property="age"/>
    11     </resultMap>
    12     
    13       <!-- 单条数据的查询,根据id查询 -->
    14     <select id="selectUserOne" parameterType="int" resultMap="User">
    15         SELECT * From users where id = #{id};
    16     </select>
    17     
    18     <!-- 插入数据 -->
    19     <insert id="insertData" parameterType="UserAlia">
    20         INSERT INTO USERS(name,age) value(#{name},#{age});
    21     </insert>
    22     
    23     <!-- 删除数据 -->
    24     <delete id="deleteData" parameterType="int">
    25         DELETE FROM USERS where id=#{id};
    26     </delete>
    27     
    28     <!-- 更新数据 -->
    29     <update id="updateData" parameterType="UserAlia">
    30         UPDATE USERS set name=#{name},age=#{age} where id=#{id};
    31     </update>
    32 </mapper>

    4.效果

      都可以使用。

    5.packet属性下的Configuration.xml

      只需将包名写上就可以了。

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
     3 
     4 <configuration>
     5 
     6   <!-- 引用properties -->
     7   <properties resource="com/cao/properties/db.properties"></properties>
     8 
     9   <!-- 别名的使用,在Users.xml中就可以使用别名代替原本的type的值 -->
    10   <typeAliases>
    11       <!--  <typeAlias type="com.cao.bean.User" alias="UserAlia"/>  -->
    12       <package name="com.cao.bean"/>
    13   </typeAliases>
    14   
    15   <environments default="development">
    16     <environment id="development">
    17       <transactionManager type="JDBC">
    18         <property name="" value=""/>
    19       </transactionManager>
    20       <dataSource type="UNPOOLED">
    21         <property name="driver" value="${driver}"/>
    22         <property name="url" value="${url}"/>
    23         <property name="username" value="${username}"/>
    24         <property name="password" value="${password}"/>
    25       </dataSource>
    26     </environment>
    27   </environments>
    28 
    29    <mappers>
    30       <mapper resource="com/cao/sql/config/users.xml"/>
    31    </mappers>
    32 
    33 </configuration>

    6.Users.xml

      这里面的别名是类名。

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE mapper
     3     PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     4     "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
     5 
     6 <mapper namespace="quickFirst">
     7     <resultMap type="User" id="UserId">
     8         <id column="ID" jdbcType="INTEGER" property="id"/>
     9         <result column="NAME" jdbcType="VARCHAR" property="name"/>
    10         <result column="AGE" jdbcType="INTEGER" property="age"/>
    11     </resultMap>
    12     
    13       <!-- 单条数据的查询,根据id查询 -->
    14     <select id="selectUserOne" parameterType="int" resultMap="UserId">
    15         SELECT * From users where id = #{id};
    16     </select>
    17     
    18     <!-- 插入数据 -->
    19     <insert id="insertData" parameterType="User">
    20         INSERT INTO USERS(name,age) value(#{name},#{age});
    21     </insert>
    22     
    23     <!-- 删除数据 -->
    24     <delete id="deleteData" parameterType="int">
    25         DELETE FROM USERS where id=#{id};
    26     </delete>
    27     
    28     <!-- 更新数据 -->
    29     <update id="updateData" parameterType="User">
    30         UPDATE USERS set name=#{name},age=#{age} where id=#{id};
    31     </update>
    32 </mapper>

    7.效果

      可以运行成功。

    三:日志打印

    1.导包

      

    2.新建log4j.xml

      

     1 <?xml version="1.0" encoding="UTF-8" ?>  
     2 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">  
     3   
     4 <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">  
     5     <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">  
     6         <layout class="org.apache.log4j.PatternLayout">  
     7             <param name="ConversionPattern" value="[CateringLog] %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %c - %m%n" />  
     8         </layout>  
     9     </appender>  
    10   
    11     <logger name="java.sql">  
    12         <level value="debug" />  
    13     </logger>  
    14     
    15     <logger name="orh.apache.ibatis">
    16         <level value="debug" />  
    17     </logger> 
    18       
    19     <root>
    20         <level value="debug"/>
    21         <appender-ref ref="STDOUT"/>
    22     </root>
    23             
    24 </log4j:configuration>  

    3.效果

      使用查询方法测试。

      

  • 相关阅读:
    SpeedPHP多入口设置 前台和后台入口分开
    php重定向 htaccess文件的编写
    SpeedPHP关于一对一和一对多关联关系的建立 model建立
    SpringMVC与Struts2关于controller线程安全问题
    编码问题 关于hibernate jdbc数据库连接在xml配置与在properties文件配置的差异
    SpringMVC可以配置多个拦截后缀*.html和.do等
    JavaSE replaceAll 方法
    Promise.race 的原理
    Promise.all 的原理
    标签联合
  • 原文地址:https://www.cnblogs.com/juncaoit/p/8207360.html
Copyright © 2011-2022 走看看