Mybatis学习(二)

编写日志输出环境配置文件

配置好环境后,工程目录结构基本出来了

Mybatis学习(二)_第1张图片

此时编写日志输出环境配置文件,打开.properties文件

写入以下信息:

log4j.rootLogger = DEBUG, stdout 
# 开发时选择DEBUG(会在控制台打印底层运行信息),生产环境设置为INFO(控制台打印出程序运行的主要步骤信息)或者ERROR(打印出不影响程序运行的错误事件),后面的stdout代表将xxx(此处为DEBUG)的日志信息输出到stdout参数所指定的载体中。

#Console output
log4j.appender.stdout = org.apache.log4j.ConsoleAppender 
# 设置名为stdout的输出载体类型,目前有:ConsoleAppender(控制台),FileAppender(文件),DailyRollingFileAppender(每天产生一个日志文件),RollingFileAppender(文件大小到达指定大小时产生一个新文件),WriterAppender(将日志信息以流格式发送到任意指定的地方),此处是打到Eclipse的控制台,所以选ConsoleAppender

log4j.appender.stdout.layout = org.apache.log4j.PatternLayout 
# 设置载体界面是什么布局,目前有:HTMLLayout(以HTML表格形式布局),PatternLayout(可以灵活指定布局模式),SimpleLayout(包含日志信息级别和信息字符串),TTCCLayout(包含日志时间,线程,类别等信息)

log4j.appender.stdout.layout.ConversionPattern = %5p [%t] -%m%n
#由于上一处已经选择了PatternLayout,所以要指定打印信息的具体格式。大致配置元素如下:
%m 输出代码中指定的信息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR和FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属类名
%t 输出产生该日志事件的线程名
%n 换行
%d 输出日志的日期或事件可以指定格式 如%D{yyyy MMM dd HH:mm:ss,SSS}输出类似xxxx年x月x日 xx:xx:xx,xxx
%l 输出日志事件发生的位置,包括类目名,发生的线程,以及代码行数

编写数据库连接池配置文件

连接池配置文件即SqlMapConfig.xml,首先写好文件头xml的版本信息以及编码格式信息,为了符合DTD文档定义类型,前2行XML配置信息为:



然后。所有的配置应位于configuration标签对中,在这之中的配置标签必须按照先后顺序配置

先在configuration标签对中先配置setting标签对,配置日志输出模式logImpl为LOG4J,Mybatis的环境信息配置在environment标签对中,里面允许出现多个environment标签对,每一个单独的environment标签对代表一个单独的数据库配置环境transcationManager标签配置的是Mybatis的事务控制类型,而dataSource标签配置的是数据库连接信息,包含多个property标签,用来放driver,数据库连接地址url,用户名,密码。

最终大致如下:

<configuration>
	<setting>
		<setting name="logImpl" value="LOG4J"/>
	setting>
	
	<environment id="development">
		
		<transcationManager type="JDBC" />
		
		<dataSource type="POOLED">
			<property name="driver" value="com.mysql.jdbc.Driver"/>
			<property name="url" value="jdbc:mysql://localhost:3306/databasename?serverTimezone=GMT&characterEncoding=utf-8"/>
			<property name="username" value="root"/>
			<property name="password" value="xxxx"/>
		dataSource>
	environment>
configuration>

除此之外该文件还应该包含Mapper映射的文件声明以及别名定义等功能,但后面SpringMVC时大部分的信息都可以交给Spring来管理。

编写SQL映射配置文件

即编写UserMapper.xml(这里是举个例子),文件头仍然为DTD类型,和SqlMapConfig.xml是一样的头。

然后所有的配置应在mapper标签中,mapper标签有namespace属性,用于对SQL进行分类化管理,实现不同业务的SQL隔离。(namespace还有重要的作用,以后再写)。

SQL有增删改查这几大类,对应的标签对为insert,detele,update,select,如果这里配置一个查询语句,选择select标签,每一个SQL配置标签都有:

  1. parameterType: 输入参数的类型,指基本数据类型或者包装类型
  2. parameterMap: 输入参数的集合,一般是Map集合
  3. resultType: 结果类型,和第一个一样
  4. resultClass: 结果的类
  5. resultMap: 结果的集合,一般是Map集合

此时的大致内容如下:




<mapper namespace="test">
	<select id="findUserById" paramterType="int" resultType="cn.com.mybatis.po.User">
		SELECT * FROM USER WHERE id=#{id}
	select>
mapper>

id为findUserById,因为SQL映射配置文件都会被解析并封装到mappedStatement对象中,为了调取相应的SQL,需要唯一的标识,所以该属性即为Statement的id。

parameterType为int,代表指定输出参数为int。

resultType代表每单条记录将映射成名为User的Java对象。

select标签中的即为查询语句#{}代表占位符,#{id},id代表接受输入参数的名称。若parameterType为简单类型(int,string,long,Date等),#{}中的值可以是任意数据


编写完成之后,在SqlMapConfig.xml的configuration标签最后且必须是加入下列信息:

<mappers>
	<mapper resource="sqlmap/UserMapper.xml"/>
mappers>

你可能感兴趣的:(自学旅程,Mybatis)