首先和xml配置是一样的
需要先把环境搭建好
准备工作做好
1、pom文件依赖(spring-context是后面spring框架需要用到,这里也导入了,但是在mybatis没有用到)
<!--导入依赖 junit mybatis mysql-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.8.RELEASE</version>
</dependency>
</dependencies>
2、主配置和jdbc配置
jdbc.properties
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/blockchain
db.username=root
db.password=771003
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="jdbc.properties"></properties>
<typeAliases>
<package name="com.anno.dao"></package>
<package name="com.anno.domain"></package>
</typeAliases>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${db.driver}"></property>
<property name="url" value="${db.url}"></property>
<property name="username" value="${db.username}"></property>
<property name="password" value="${db.password}"></property>
</dataSource>
</environment>
</environments>
<mappers>
<package name="com.anno.dao"></package>
</mappers>
</configuration>
3、实体类
package com.anno.domain;
import java.io.Serializable;
public class User implements Serializable {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
4、dao层
package com.anno.dao;
import com.anno.domain.User;
import org.apache.ibatis.annotations.*;
import java.util.List;
public interface IUserDAO {
@Select(value = "select * from user")
public List<User> findAll();
@Insert(value = "insert into user values(null,#{name})")
public void save(User user);
@Delete(value = "delete from user where id=#{uid}")
public void delete(int uid);
@Update(value = "update user set name=#{name} where id=#{id}")
public void update(User user);
@Select(value = "select * from user where name like #{username}")
public List<User> findByName(String name);
}
5、SqlSession工具类
package com.anno.utils;
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 java.io.IOException;
public class MySqlSessionUtil {
private static SqlSessionFactory sqlSessionFactory;
static {
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
try {
sqlSessionFactory = builder.build(Resources.getResourceAsStream("sqlMapperConfig.xml"));
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
6、测试类
import com.anno.dao.IUserDAO;
import com.anno.domain.User;
import com.anno.utils.MySqlSessionUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class MyTest {
@Test
public void findAllTest(){
SqlSession sqlSession = MySqlSessionUtil.getSqlSession();
IUserDAO mapper = sqlSession.getMapper(IUserDAO.class);
List<User> all = mapper.findAll();
for (User user : all) {
System.out.println(user);
}
}
@Test
public void saveTest(){
SqlSession sqlSession = MySqlSessionUtil.getSqlSession();
IUserDAO mapper = sqlSession.getMapper(IUserDAO.class);
User user = new User();
user.setName("加盐盐888");
mapper.save(user);
sqlSession.commit();
}
@Test
public void deleteTest(){
SqlSession sqlSession = MySqlSessionUtil.getSqlSession();
IUserDAO mapper = sqlSession.getMapper(IUserDAO.class);
int uid=10;
mapper.delete(uid);
sqlSession.commit();
}
@Test
public void updateTest(){
SqlSession sqlSession = MySqlSessionUtil.getSqlSession();
IUserDAO mapper = sqlSession.getMapper(IUserDAO.class);
User user = new User();
user.setName("小猪佩奇其");
user.setId(11);
mapper.update(user);
sqlSession.commit();
}
@Test
public void findByNameTest(){
SqlSession sqlSession = MySqlSessionUtil.getSqlSession();
IUserDAO mapper = sqlSession.getMapper(IUserDAO.class);
String name = "%加盐盐%";
List<User> byName = mapper.findByName(name);
for (User user : byName) {
System.out.println(user);
}
}
}
项目代码相关链接
链接:https://pan.baidu.com/s/1fv6DFBWEN6gMOn7tvC31Mw
提取码:5kkh
注:sql脚本需要自己创建
只需要创建按一个简单的用户表即可