Mybatis第一天
工程目录概览
操作步骤
1.加入相应的jar包
2.创建相应的实体类bean
3.创建mybatis的配置文件
<?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" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
</configuration>
4.创建mybatis的映射文件
<?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">
<!-- namespace:表示名称空间。现在的目的是区分id的. -->
<mapper namespace="com.zhiyou100.zfx.mapper.UsersMapper">
<!-- 根据id查询用户。id:标识该标签。
parameterType:参数类型。可以写 也可以省略
resultType:返回结果的类型。
#{id}:类似于EL表达式。 解析id的值
-->
<select id="getUser" parameterType="int" resultType="com.zhiyou100.ykq.bean.Users">
select * from users where id=#{id}
</select>
</mapper>
5.mybatis的映射文件要引入到配置文件中
<?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 resource="db.properties"/>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<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/zhiyou100/zfx/mapper/UsersMapper.xml"/>
<mapper resource="com/zhiyou100/zfx/mapper/OrderMapper.xml"/>
</mappers>
</configuration>
6.在junit中测试
package com.zhiyou100.zfx.junit;
import static org.junit.jupiter.api.Assertions.*;
import java.io.Reader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import com.zhiyou100.zfx.bean.Users;
class TestMybatis {
static SqlSession session = null;
static String path="com.zhiyou100.zfx.mapper.UsersMapper.";
@BeforeAll
static void setUpBeforeClass() throws Exception {
//解析配置文件
Reader reader = Resources.getResourceAsReader("conf.xml");
//获取SessionFactory对象
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
session = sessionFactory.openSession();
}
@Test
void add() {
int row = session.insert(path+"addUser", new Users("赵六", 30));
System.out.println(row);
}
@Test
void update() {
int row = session.update(path+"updateUser", new Users(2, "赵四", 38));
System.out.println(row);
}
@Test
void delete() {
session.delete(path+"deleteUser", 4);
}
@Test
void selectAll() {
List<Users> list = session.selectList(path+"selectAll");
System.out.println(list);
}
@Test
void selectByAge() {
Map<String,Integer> map = new HashMap<>();
map.put("min", 10);
map.put("max", 30);
List<Users> list = session.selectList(path+"selectByAge",map);
System.out.println(list);
}
@AfterAll
static void tearDownAfterClass() throws Exception {
session.commit();//手动添加到数据库中
}
}
优化
- 把数据源的信息抽取到db.properties文件中(只要后缀为.properties即可),当作数据源的属性,方便修改
#数据源的信息 driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis username=root password=root
- 把db.properties文件引入到mybatis的配置文件中(上述第五步已完成)
- 加入日志信息
- 导入jar包
- 引入日志文件.log4j.properties
log4j.properties, log4j.rootLogger=DEBUG, Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n log4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache=INFO log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG
- 导入jar包