一、搭建环境
1.导入架包
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
- mybatis日志依赖log4j,需要配置log4j.properties
# Global logging configuration
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
- 配置Mybatis核心配置文件SqlMapConfig.xml
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--dtd是对xml配置标签与属性的约束-->
<configuration>
<typeAliases>
<package name="com.lg.pojo"/>
</typeAliases>
<!-- environments环境 开发环境,生产环境-->
<environments default="development">
<environment id="development">
<!-- 使用jdbc的事务管理 -->
<transactionManager type="JDBC"/>
<!-- dataSource Mybatis自带数据源连接池-->
<dataSource type="POOLED">
<!-- 四大信息 -->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/school?characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<!-- 配置多个映射文件-->
<mappers>
<mapper resource="com/lg/mapper/UserMapper.xml"></mapper>
</mappers>
</configuration>
二、配置运行条件
- pojo:User类
public class User {
private int id;
private String username;
private String password;
//get set方法
}
- 数据库表:
UserMapper接口
public interface UserMapper {
//根据id查找用户
public User findById(int id);
//根据用户名模糊查询
List<User> findByKeyWord (String key);
//根据id删除数据
void deleteById(int id);
//插入数据
public void saveUser(User user);
}
UserMapper.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="com.lg.mapper.UserMapper">
<select id="findById" parameterType="int" resultType="user">
select * from users where id = #{
id}
</select>
<select id="findByKeyWord" parameterType="string" resultType="user">
select * from users where username like '${value}'
</select>
<delete id="deleteById" parameterType="int">
delete from users where id = #{
id}
</delete>
<insert id="saveUser" parameterType="user">
insert into users(id,username,password) values (#{
id},#{
username},#{
password})
</insert>
</mapper>
两者的结构目录
4. 生成SqlSession的工具类
public class MySessionUtils {
private static SqlSessionFactory sessionFactory;
static{
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
InputStream inputStream = MySessionUtils.class.getClassLoader().getResourceAsStream("SqlMapConfig.xml");
sessionFactory = sqlSessionFactoryBuilder.build(inputStream);
}
public static SqlSession getSession() {
SqlSession sqlSession = sessionFactory.openSession();
return sqlSession;
}
}
三、添加用户
@Test
public void saveUser(){
SqlSession sqlSession = MySessionUtils.getSession();
UserMapper dao = sqlSession.getMapper(UserMapper.class);
User user = new User();
user.setId(1);
user.setUsername("zhangsan");
user.setPassword("123456");
dao.saveUser(user);
sqlSession.close();
}
效果截图: