您的位置:首页 > 其它

3、Mybatis通过注解的形式实现增、删、改、查

2018-01-04 23:53 337 查看
上一节介绍了通过XML配置的形式实现增、删、该、查,本节介绍通过注解的形式实现增、删、该、查。还是以数据库中的users表为例

1、首先建立users表对应的bean

package com.lzj.mybaits.test1;

public class User {
private int id;
private String name;
private int age;

public User() {
super();
}

public User(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.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;
}

@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}

}


2、创建sql的映射接口UserMapper

package com.lzj.mybaits.test1;
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(id, name, age) values(#{id}, #{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 updUser(User user);

@Select("select * from users where id=#{id}")
public User getUserById(int id);

@Select("select * from Users")
public List<User> getAllUser();

}


3、定义Mybaits的配置文件conf.xml

<?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/lzj_database" />
<property name="username" value="root" />
<property name="password" value="lzjlzj" />
</dataSource>
</environment>
</environments>

<mappers>
<!--注意这个地方用的是class-->
<mapper class="com.lzj.mybaits.test1.UserMapper"/>
</mappers>

</configuration>


4、创建测试类

由于增、删、改、查都需要先获取SqlSessionFactory,所以先定义一个公共类MybaitsUtil ,用于获取SqlSessionFactory对象。

package com.lzj.mybaits.util;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.lzj.mybaits.test1.MybaitsTest;

public class MybaitsUtil {

public static SqlSessionFactory getFactory(){
String resource = "conf.xml";
InputStream in = MybaitsTest.class.getClassLoader().getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
return factory;
}

}


创建测试类,测试增、删、该、查

package com.lzj.mybaits.test1;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import com.lzj.mybaits.util.MybaitsUtil;

public class MybaitsTest {

public static void main(String[] args) throws Exception {

//      testInsert();
//      testUpd();
//      testDelete();
//      testSelectOne();
testSelectAll();

}

public static void testInsert(){
SqlSessionFactory factory = MybaitsUtil.getFactory();
/*默认设置手动提交事务的*/
SqlSession session = factory.openSession();
UserMapper mapper = session.getMapper(UserMapper.class);
int insertNum = mapper.insertUser(new User(4, "zhangsan", 21));
System.out.println("insertNum = " + insertNum);
/*手动提交事务*/
/*如果此处不想手动提交数据,可以在factory.openSession(true),表示插入数据时自动提交事务*/
session.commit();
session.close();

}

public static void testUpd(){
SqlSessionFactory factory = MybaitsUtil.getFactory();
/*自动提交事务*/
SqlSession session = factory.openSession(true);
UserMapper mapper = session.getMapper(UserMapper.class);
int updateNum = mapper.updUser(new User(4, "lisi", 20));
System.out.println("updateNum = " + updateNum);
session.close();
}

public static void testDelete(){
SqlSessionFactory factory = MybaitsUtil.getFactory();
/*自动提交事务*/
SqlSession session = factory.openSession(true);
UserMapper mapper = session.getMapper(UserMapper.class);
int deleteNum = mapper.deleteUser(4);
System.out.println("deleteNum = " + deleteNum);
session.close();
}

public static void testSelectOne(){
SqlSessionFactory factory = MybaitsUtil.getFactory();
/*自动提交事务*/
SqlSession session = factory.openSession(true);
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.getUserById(3);
System.out.println(user);
session.close();
}

public static void testSelectAll(){
SqlSessionFactory factory = MybaitsUtil.getFactory();
/*自动提交事务*/
SqlSession session = factory.openSession(true);
UserMapper mapper = session.getMapper(UserMapper.class);
List<User> list = mapper.getAllUser();
System.out.println(list);
session.close();
}
}


工程目录

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: