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.效果

  使用查询方法测试。

  

原文地址:https://www.cnblogs.com/juncaoit/p/8207360.html