mybatis中的一点优化问题(数据库连接分开,别名,日志打印)
一:数据的链接
1.目录

2.新建一个db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3308/mybatis
username=root
password=123456
3.Configuration.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 -->
<properties resource="com/cao/properties/db.properties"></properties> <environments default="development">
<environment id="development">
<transactionManager type="JDBC">
<property name="" value=""/>
</transactionManager>
<dataSource type="UNPOOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments> <mappers>
<mapper resource="com/cao/sql/config/users.xml"/>
</mappers> </configuration>
4.运行程序测试
运行mainTest类中的单条查询方法。

二:别名
1.介绍
在这里有两种使用方法,分别介绍。
主要变动的地方在于Configuration.xml与User.xml,所以,下面的程序就只粘贴这两种程序,方便做对比。
2.type属性下的Configuration.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 -->
<properties resource="com/cao/properties/db.properties"></properties> <!-- 别名的使用,在Users.xml中就可以使用别名代替原本的type的值 -->
<typeAliases>
<typeAlias type="com.cao.bean.User" alias="UserAlia"/>
</typeAliases> <environments default="development">
<environment id="development">
<transactionManager type="JDBC">
<property name="" value=""/>
</transactionManager>
<dataSource type="UNPOOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments> <mappers>
<mapper resource="com/cao/sql/config/users.xml"/>
</mappers> </configuration>
3.在Users.xml中的使用
发现原来的com.cao.bean.User都被替换成了UserAlia了。
<?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"> <mapper namespace="quickFirst">
<resultMap type="UserAlia" id="User">
<id column="ID" jdbcType="INTEGER" property="id"/>
<result column="NAME" jdbcType="VARCHAR" property="name"/>
<result column="AGE" jdbcType="INTEGER" property="age"/>
</resultMap> <!-- 单条数据的查询,根据id查询 -->
<select id="selectUserOne" parameterType="int" resultMap="User">
SELECT * From users where id = #{id};
</select> <!-- 插入数据 -->
<insert id="insertData" parameterType="UserAlia">
INSERT INTO USERS(name,age) value(#{name},#{age});
</insert> <!-- 删除数据 -->
<delete id="deleteData" parameterType="int">
DELETE FROM USERS where id=#{id};
</delete> <!-- 更新数据 -->
<update id="updateData" parameterType="UserAlia">
UPDATE USERS set name=#{name},age=#{age} where id=#{id};
</update>
</mapper>
4.效果
都可以使用。
5.packet属性下的Configuration.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 -->
<properties resource="com/cao/properties/db.properties"></properties> <!-- 别名的使用,在Users.xml中就可以使用别名代替原本的type的值 -->
<typeAliases>
<!-- <typeAlias type="com.cao.bean.User" alias="UserAlia"/> -->
<package name="com.cao.bean"/>
</typeAliases> <environments default="development">
<environment id="development">
<transactionManager type="JDBC">
<property name="" value=""/>
</transactionManager>
<dataSource type="UNPOOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments> <mappers>
<mapper resource="com/cao/sql/config/users.xml"/>
</mappers> </configuration>
6.Users.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"> <mapper namespace="quickFirst">
<resultMap type="User" id="UserId">
<id column="ID" jdbcType="INTEGER" property="id"/>
<result column="NAME" jdbcType="VARCHAR" property="name"/>
<result column="AGE" jdbcType="INTEGER" property="age"/>
</resultMap> <!-- 单条数据的查询,根据id查询 -->
<select id="selectUserOne" parameterType="int" resultMap="UserId">
SELECT * From users where id = #{id};
</select> <!-- 插入数据 -->
<insert id="insertData" parameterType="User">
INSERT INTO USERS(name,age) value(#{name},#{age});
</insert> <!-- 删除数据 -->
<delete id="deleteData" parameterType="int">
DELETE FROM USERS where id=#{id};
</delete> <!-- 更新数据 -->
<update id="updateData" parameterType="User">
UPDATE USERS set name=#{name},age=#{age} where id=#{id};
</update>
</mapper>
7.效果
可以运行成功。
三:日志打印
1.导包

2.新建log4j.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[CateringLog] %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %c - %m%n" />
</layout>
</appender> <logger name="java.sql">
<level value="debug" />
</logger> <logger name="orh.apache.ibatis">
<level value="debug" />
</logger> <root>
<level value="debug"/>
<appender-ref ref="STDOUT"/>
</root> </log4j:configuration>
3.效果
使用查询方法测试。

mybatis中的一点优化问题(数据库连接分开,别名,日志打印)的更多相关文章
- MyBatis中log4j 和 参数 和 分页和别名 功能
1.配置全局文件,注意各个配置标签的顺序 properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWr ...
- mybatis中collection association优化使用及多参数传递
mybatis都会用,但要优雅的用就不是那么容易了 今天就简单举例,抛砖引玉,供大家探讨 1.主表 CREATE TABLE `test_one` ( `id` int(11) NOT NULL AU ...
- Python+Selenium进行UI自动化测试项目中,常用的小技巧4:日志打印,longging模块(控制台和文件同时输出)
在前段时间,为了给项目中加入日志功能,就想到了 logging 模块,百度logging一大推,都是各种复制的,并没有找到自己想要的结果:我的目的很简单,就是:在把日志写入文件的同时在控制台输出,更加 ...
- mybatis中自建的类型别名
在使用mybatis过程中经常用到类型别名,除了我们自己新建的别名外,mybatis还自带了很多类型别名和java中的类型的映射,下面先看一个自建的别名的配置 <typeAliases> ...
- 【转】MyBatis学习总结(三)——优化MyBatis配置文件中的配置
[转]MyBatis学习总结(三)——优化MyBatis配置文件中的配置 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的con ...
- MyBatis中#{ }和${ }的区别,数据库优化遵循层次和查询方法
MyBatis中#{ }和${ }的区别详解 1.#将传入的数据当成一个字符串,会对自动传入的数据加一个 双引号. 例如order by #id#,如果传入的值是111,那么解析成sql时变为orde ...
- 【mybatis】mybatis中避免where空条件后面添加1=1垃圾条件的 优化方法
在mybatis中拼接查询语句,偶尔会出现where后面可能一个字段的值都没有,就导致所有条件无效,导致where没有存在的意义:但也有可能这些条件会存在.那解决这个问题的方法,最常见的就是: 在wh ...
- mybatis中foreach参数过多效率很慢的优化
foreach 后面in 传入的参数有1万条,#和$是有效率区别的,$的效率远高于#,上篇文章做了比较. 但没达到我的理想结果. 1. 更改方式,把foreach 去掉,改成拼装方式, 参数直接拼装成 ...
- Mybatis中的collection、association来处理结果映射
前不久的项目时间紧张,为了尽快完成原型开发,写了一段效率相当低的代码. 最近几天闲下来,主动把之前的代码优化了一下:) 标签:Java.Mybatis.MySQL 概况:本地系统从另外一个系统得到 ...
随机推荐
- bzoj千题计划240:bzoj3900: 交换茸角
http://www.lydsy.com/JudgeOnline/problem.php?id=3900 dp[i]表示让状态为i的鹿满足要求的最少交换次数 不能枚举两头鹿交换,因为一头鹿可能交换多次 ...
- li分两列显示
只要控制了li的宽度,利用浮动就能实现<style type="text/css"> .my ul { width: 210px; } .my li { width: ...
- Flex 界面初始化 自定义 预加载 类!
说明: 自定义界面初始化过程提示:初始化...,初始化完毕,加载完毕! ZPreloader.as package com.command { import flash.display.Graphic ...
- JavaScript Cookies取值
http://www.w3school.com.cn/js/js_cookies.asp
- CSS Pseudo-classes
先来一条金科玉律: 伪类的效果可以通过添加一个实际的类来达到:伪元素的效果可以通过添加一个实际的元素来达到. 第一部分,Pseudo-classes,伪类 一.链接系 (这个应该是最熟悉的啦.) a: ...
- TP-Link wr703N 使用华为HiLink系列上网卡的设置【转】
转自:http://www.right.com.cn/forum/thread-103082-1-1.html 最近买了一个华为的E303s的上网卡,之前703的openwrt是按照需要拨号和使用U盘 ...
- linux动态追踪神器——Strace实例介绍【转】
Strace是Linux下一款通用的进程动态跟踪工具,用来追踪程序执行时的系统调用和所接收的信号.其应用方法如下图(部分). 首先,简单说说它的使用参数,Strace的参数包括输出参数.过滤参数.统计 ...
- LR开发接口脚本
char token_id,tenant_id; web_add_header("Accept","application/json"); web_ ...
- webapck编译打包stylus文件
先安装css-loader.stylus.stylus-loader npm install --save-dev css-loader npm install --save-dev stylus n ...
- private,protected,public和default的区别
private,protected,public和default的区别 private,protected,public和default作为Java中的访问修饰符,他们的最大区别就在于访问权限不同: ...