写在前面:受限于自身编程语言水平,文中可能存在错误之处,博客本意只为自查,不建议作为学习之用
1、整体项目结构
2、实体类
package com.xiaohu.test;
public class User {
private int id;
private String name;
private int age;
public User(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public User() {
super();
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
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;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
3、创建一个UserMapper接口,使用注解写sql
package com.xiaohu.test;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
public interface UserMapper {
@Insert("insert into users (name,age) values (#{name},#{age})")
public int insertUser(User user);
@Delete("delete from users where id=#{id}")
public int deleteUser(int id);
@Update("update users set name=#{name},age=#{age} where id =#{id}")
public int updateUser(User user);
@Select("select * from users where id =#{id}")
public User selectUser(int id);
@Select("select * from users")
public List<User> selectUsers();
}
4、UserDao调用
package com.xiaohu.test;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class UserDao {
private static SqlSessionFactory sqlSessionFactory=null;
static {
try {
//使用流引用总配置文件
Reader reader=Resources.getResourceAsReader("config.xml");
//创建会话工厂
sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void addUser(User user) {
//打开一个会话,默认提交
SqlSession sqlSession= sqlSessionFactory.openSession(true);
//作为参数,引入mapper类
UserMapper mapper=sqlSession.getMapper(UserMapper.class);
//调用其中方法
int insert=mapper.insertUser(user);
System.out.println(insert);
sqlSession.close();
}
public void deleteUser(int id) {
SqlSession sqlSession= sqlSessionFactory.openSession(true);
UserMapper mapper=sqlSession.getMapper(UserMapper.class);
int delete=mapper.deleteUser(id);
System.out.println(delete);
sqlSession.close();
}
public void updateUser(User user) {
SqlSession sqlSession= sqlSessionFactory.openSession(true);
UserMapper mapper=sqlSession.getMapper(UserMapper.class);
int update=mapper.updateUser(user);
System.out.println(update);
sqlSession.close();
}
public User selectUser(int id) {
User user=null;
SqlSession sqlSession= sqlSessionFactory.openSession(true);
UserMapper mapper=sqlSession.getMapper(UserMapper.class);
user=mapper.selectUser(id);
sqlSession.close();
return user;
}
public List<User> selectUsers(){
List<User> list=null;
SqlSession sqlSession= sqlSessionFactory.openSession(true);
UserMapper mapper=sqlSession.getMapper(UserMapper.class);
list=mapper.selectUsers();
sqlSession.close();
return list;
}
}
5、配置文件引用注解类
<?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="123456" />
</dataSource>
</environment>
</environments>
<!-- mapper类的引入使用class -->
<mappers>
<mapper class="com.xiaohu.test.UserMapper"/>
</mappers>
</configuration>
6、测试类
package com.xiaohu.test;
import java.util.List;
import org.junit.Test;
public class UserTest {
UserDao userDao=new UserDao();
@Test
public void addUser() {
userDao.addUser(new User(-1,"旺旺",12));
}
@Test
public void deleteUser() {
userDao.deleteUser(3);
}
@Test
public void updateUser() {
userDao.updateUser(new User(2,"旺财",12));
}
@Test
public void getUser() {
User user=userDao.selectUser(2);
System.out.println(user);
}
@Test
public void getUsers() {
List<User> list=userDao.selectUsers();
System.out.println(list);
}
}
7、结果