mybatis实现查找列表以及增删改差
1、首先创建User类与表中结构相对应
User.class,写好getter和setter方法。
package com.xiao.mybatis.bean;
public class User {
private int id;
private String name;
int age;
String sex;
String school;
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;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
}
2、写IUser接口映射文件,里面有增删改差和获取用户列表的方法。
package com.xiao.mybatis.dao;
import com.xiao.mybatis.bean.User;
import java.util.List;
public interface IUser {
public List<User> getUserList();
public void insertUser(User user);
public void updateUser(User user);
public void deleteUser(int id);
public User getUser(int id);
}
3、写mapper映射文件User.xml
其中,有对应IUser接口中,每一个方法的sql语句类型,语句具体值,参数类型和返回值类型。namespace一定要是IUser所在的位置。
<?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.xiao.mybatis.dao.IUser">
<select id="getUser" parameterType="int" resultType="com.xiao.mybatis.bean.User">
SELECT *
FROM USER
WHERE id = #{id}
</select>
<insert id="insertUser" parameterType="User">
INSERT INTO USER (id,name,age,sex,school)
VALUES (#{id},#{name},#{age},#{sex},#{school})
</insert>
<select id="getUserList" resultType="com.xiao.mybatis.bean.User">
select * FROM USER
</select>
<update id="updateUser" parameterType="User">
UPDATE USER
SET
name=#{name},
age = #{age},
sex = #{sex},
school = #{school}
WHERE
id =
#{id}
</update>
<delete id="deleteUser" parameterType="int">
DELETE FROM USER WHERE id = #{id}
</delete>
</mapper>
4、编写主类进行测试。
package com.xiao.mybatis.bean;
/*
*
* 实现增删改查
* */
import com.xiao.mybatis.dao.IUser;
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.Reader;
import java.text.MessageFormat;
import java.util.List;
public class DemoTest {
private static SqlSessionFactory sqlSessionFactory;
static {
try{
Reader reader = Resources.getResourceAsReader("mybatis-remote-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
}catch (Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
SqlSession session = sqlSessionFactory.openSession();
try{
// 用户数据列表
//getUserList();
//插入数据
//testInsert();
// 更新用户
testUpdate();
// 删除数据
//testDelete();
}finally {
session.close();
}
}
/*
* 添加用户信息
* */
public static void testInsert(){
try{
SqlSession session = sqlSessionFactory.openSession();
//获取mapper
IUser userMapper = session.getMapper(IUser.class);
System.out.println("Test insert>>>>>>>>>>>>>");
//执行插入
User user = new User();
user.setId(8);
user.setName("提莫");
user.setAge(5);
user.setSex("未知");
user.setSchool("约德尔");
userMapper.insertUser(user);
//提交事务
session.commit();
//插入之后显示用户信息
System.out.println("after insert>>>>>>>>>>>>");
getUserList();
System.out.println("Test insert finished>>>>>>>>>>>>");
}catch (Exception e){
e.printStackTrace();
}
}
/*
* 获取用户列表
* */
public static void getUserList(){
try{
SqlSession session = sqlSessionFactory.openSession();
IUser iuser = session.getMapper(IUser.class);
//显示user信息
System.out.println("Test Get Start>>>>>>>>>>>>");
printUsers(iuser.getUserList());
System.out.println("Test get finished>>>>>>>>>>");
}catch (Exception e){
e.printStackTrace();
}
}
public static void testUpdate()
{
try
{
SqlSession session = sqlSessionFactory.openSession();
IUser iuser = session.getMapper(IUser.class);
System.out.println("Test update start...");
printUsers(iuser.getUserList());
// 执行更新
User user = iuser.getUser(8);
user.setName("New name");
iuser.updateUser(user);
// 提交事务
session.commit();
// 显示更新之后User信息
System.out.println("After update");
printUsers(iuser.getUserList());
System.out.println("Test update finished...");
}catch (Exception e)
{
e.printStackTrace();
}
}
// 删除用户信息
public static void testDelete()
{
try
{
SqlSession session = sqlSessionFactory.openSession();
IUser iuser = session.getMapper(IUser.class);
System.out.println("Test delete start...");
// 显示删除之前User信息
System.out.println("Before delete");
printUsers(iuser.getUserList());
// 执行删除
iuser.deleteUser(7);
// 提交事务
session.commit();
// 显示删除之后User信息
System.out.println("After delete");
printUsers(iuser.getUserList());
System.out.println("Test delete finished...");
}catch (Exception e)
{
e.printStackTrace();
}
}
/**
*
* 打印用户信息到控制台
*
* @param users
*/
private static void printUsers(final List<User> users) {
int count = 0;
for (User user : users) {
System.out.println(MessageFormat.format(
"============= User[{0}]=================", ++count));
System.out.println("User Id: " + user.getId());
System.out.println("User Name: " + user.getName());
System.out.println("User Age: " + user.getAge());
System.out.println("User Sex: " + user.getSex());
System.out.println("User school:" + user.getSchool());
}
}
}
5、别忘了还有mybatis配置文件。mybatis-remote-config.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>
<typeAliases>
<typeAlias alias="User" type="com.xiao.mybatis.bean.User"/>
</typeAliases>
<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://10.2.17.205:3306/IOTDB?useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="IOTUSER"/>
<property name="password" value="******/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/xiao/mybatis/xml/User.xml"/>
</mappers>
</configuration>
参考教程
Mybatis增删改查
还没有评论,来说两句吧...