1. 准备数据库
2. 准备实体类
3. 导包
+
+mysql驱动包
4. 书写配置文件
核心配置文件
sqlMapConfig.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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis01"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="cn/hd/pojo/UserMapper.xml"></mapper>
</mappers>
</configuration>
映射文件
<?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="test">
<select id="findUserById" parameterType="int" resultType="cn.hd.pojo.User" >
SELECT * FROM t_user WHERE id = #{id}
</select>
<select id="findUser" parameterType="int" resultType="cn.hd.pojo.User">
SELECT * FROM t_user
</select>
</mapper>
Log4j配置文件
# Global logging configuration
#在开发环境下日志级别设置为debug,生产环境下设置成info或error
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
配置介绍
sqlMapConfig
命名可以修改, 位置任意 当然我们建议名字叫做sqlMapConfig 位置放在src目录下
environments : 表示sqlmapconfig的运行环境。
运行环境:数据库的基本信息,事务
mappers:表示数据源
UserMapper.xml
名字可以修改 位置任意
名字建议是 User.xml (ibatis) UserMapper.xml(MyBatis) 我们建议 类名+Mapper.xml
书写sql语句
Mapper namespace 属性 解决在不同表中查询的sql语句的名字冲突比如 user表 findById orders 表 findById 名字冲突不识别,所以可以给不同的表的数据源加上一个前缀 对应的是namespace属性
<select id="findUserById" parameterType="int" resultType="cn.hd.pojo.User" >
SELECT * FROM t_user WHERE id = #{id}
</select>
id 给当前的sql语句起一个识别id parameterType 参数类型 resultType 结果集封装的类型
#{id} 占位符 里面的名字任意