Mybatis实现简单的增删改查
环境问题配置点击下面链接
https://blog.csdn.net/BianDaNiu/article/details/102840114
下面贴代码,由于是简单学习测试使用,有些写法并不是很好,仅供参考
保证数据库名和变量名相同
package com.daixin.mybatisdemo.domain;
import jdk.nashorn.internal.objects.annotations.Getter;
import jdk.nashorn.internal.objects.annotations.Setter;
import java.util.Date;
public class Role {
private Integer id;
private String name;
private Date birth;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Role{" +
"id=" + id +
", name='" + name + '\'' +
", birth=" + birth +
", age=" + age +
'}';
}
}
接口
package com.daixin.mybatisdemo.dao;
import com.daixin.mybatisdemo.domain.Queryvo;
import com.daixin.mybatisdemo.domain.Role;
import java.util.List;
public interface ImRole {
List<Role> findAll();//查询角色
void deleteRole(String name);//删除角色
void updateRole(Role role);//修改角色
void insertRole(Role role);//增加角色
List<Role> findByName(String name);//通过姓名模糊查找
List<Role> findByVo(Queryvo queryvo);//模糊查找
int findTotal();//返回总数
}
<?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.daixin.mybatisdemo.dao.ImRole">
<!--增加角色-->
<insert id="insertRole" parameterType="com.daixin.mybatisdemo.domain.Role">
insert into role(name,birth,age) value (#{name},#{birth},#{age})
</insert>
<!--查询角色-->
<select id="findAll" resultType="com.daixin.mybatisdemo.domain.Role">
select * from role
</select>
<!--修改角色-->
<update id="updateRole" parameterType="com.daixin.mybatisdemo.domain.Role">
update role set name=#{name},birth=#{birth},age=#{age} where id=#{id}
</update>
<!--删除角色-->
<delete id="deleteRole" parameterType="String">
delete from role where name=#{name }
</delete>
<!--按姓名模糊查找-->
<select id="findByName" parameterType="string" resultType="com.daixin.mybatisdemo.domain.Role">
select * from role where name like #{name }
</select>
<!--query姓名模糊查找-->
<select id="findByVo" parameterType="string" resultType="com.daixin.mybatisdemo.domain.Role">
select * from role where name like #{role.name}
</select>
<!--查找总条数 count后不要手贱多打空格-->
<select id="findTotal" resultType="int">
select count(id) from role
</select>
</mapper>
package com.daixin.mybatisdemo.domain;
import com.daixin.mybatisdemo.dao.ImRole;
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.After;
import org.junit.Before;
import org.junit.Test;
import javax.annotation.Resource;
import java.io.InputStream;
import java.util.*;
public class RoleTest {
private InputStream in;
private SqlSessionFactoryBuilder builder;
private SqlSession sqlSession;
private SqlSessionFactory factory;
private ImRole imRole;
@Before
public void init() throws Exception{
//1.读取配置文件
in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.创建SqlSessionFactory工厂
builder=new SqlSessionFactoryBuilder();
factory = builder.build(in);
//3.使用工厂生产SqlSession对象
sqlSession = factory.openSession();
//4.使用SqlSession工厂创建Dao接口的代理对象
imRole =sqlSession.getMapper(ImRole.class);
}
@After
public void destroy() throws Exception{
// 提交事务
sqlSession.commit();
//6.释放资源
sqlSession.close();
in.close();
}
@Test
public void insertRoleTest(){
Role role = new Role();
role.setName("二方");
role.setBirth(new Date());
role.setAge(19);
imRole.insertRole(role);
System.out.println("插入成功");
}
@Test
public void findAllTest(){
List<Role> roles = imRole.findAll();
for (Role r : roles) {
System.out.println(r);
}
}
@Test
public void updateRole(){
Role role = new Role();
role.setId(1);
role.setName("戴鑫");
role.setAge(25);
role.setBirth(new Date());
imRole.updateRole(role);
}
@Test
public void deleteRole(){
imRole.deleteRole("戴鑫");
}
/*
模糊查找
*/
@Test
public void findByNameTest() {
List<Role> roles = imRole.findByName("%方%");
for (Role role : roles) {
System.out.println(role);
}
}
/*
queryVo 模糊查找
*/
@Test
public void findByVoTest(){
Role role = new Role();
Queryvo queryvo = new Queryvo();
role.setName("%方%");
queryvo.setRole(role);
List<Role> list = imRole.findByVo(queryvo);
for (Role r : list) {
System.out.println(r);
}
}
/*
查询条数
*/
@Test
public void findTotalTest(){
int total = imRole.findTotal();
System.out.println(total);
}
}