Mybatis的增删改查
-
mybatis流程:
1 创建实体类及接口方法
2 创建全局配置文件 configuration.xml
3 创建 sql 映射文件 BlogMapper.xml
4 将全局文件中维护 sql映射文件配置
5 调用java API 执行相关sql操作
注意sqlSession是线程非安全的实体java类:
package model; public class Bloger { private Integer id; private String name; //这里需要注意变量的命名规范,因为实体变量会和sql记录一一对应, // 所以不规范的命名方式会导致mybatis执行异常 private String userName; private int age; private String email; public Bloger(){} public Bloger(Integer id, String name, String userName, int age, String email) { this.id = id; this.name = name; this.userName = userName; this.age = age; this.email = email; } 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 String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Override public String toString() { return "BlogId:"+ getId()+ " BlogName:"+getName()+ " username:" + getUserName(); } }
接口方法:
package dao;
import model.Bloger;
import org.apache.ibatis.annotations.Select;
public interface BlogerMapper {
//通过接口方法 getBlogerId(Integer id)返回一个实体对象
public Bloger getBlogerId(Integer id);
public void addBloger(Bloger bloger);
public void updateBloger(Bloger bloger);
public Boolean deleteBloger(Integer id);
}
mapper 配置文件:
<?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="dao.BlogerMapper">
<!--model.Bloger -->
<select id="getBlogerId" resultType="Bloger">
select id,name,user_name,age,email from mybatis_test where id = #{id}
</select>
<!--添加博主 -->
<insert id="addBloger" parameterType="Bloger">
INSERT into mybatis_test(user_name,age,email,name)
VALUES (#{user_name},#{age},#{email},#{name});
</insert>
<update id="updateBloger" parameterType="model.Bloger">
UPDATE mybatis_test
SET user_name=#{user_name},age=#{age},email=#{email},name=#{name}
WHERE id = #{id}
</update>
<delete id="deleteBloger" parameterType="model.Bloger">
DELETE FROM mybatis_test where id =#{id}
</delete>
</mapper>
package test;
import dao.BlogerMapper;
import model.Bloger;
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;
import java.io.InputStream;
public class MybatisDriver {
public static void main(String[] args) throws Exception{
mybatits_select();
}
public static SqlSessionFactory getSqlSessionFactory() throws IOException {
String resource = "source/configuration.xml";
InputStream inputStream= Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory= new SqlSessionFactoryBuilder().build(inputStream);
return sqlSessionFactory;
}
public static void mybatits_add() throws IOException{
// 获取SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();
// 获取回话对象
SqlSession sqlSession=sqlSessionFactory.openSession();
// 这里MyBaitis帮我们创建了代理对象
BlogerMapper blogerMapper =sqlSession.getMapper(BlogerMapper.class);
Bloger bloger=new Bloger();
bloger.setName("樊瑞8号");
bloger.setEmail("[email protected]");
bloger.setAge(33);
bloger.setUserName("wujianqinjian8");
blogerMapper.addBloger(bloger);
sqlSession.commit();
sqlSession.close();
}
public static void mybatits_delete() throws IOException{
// 获取SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();
// 获取回话对象
SqlSession sqlSession=sqlSessionFactory.openSession();
// 这里MyBaitis帮我们创建了代理对象
BlogerMapper blogerMapper =sqlSession.getMapper(BlogerMapper.class);
blogerMapper.deleteBloger(11);
sqlSession.commit();
sqlSession.close();
}
public static void mybatits_update() throws IOException{
// 获取SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();
// 获取回话对象
SqlSession sqlSession=sqlSessionFactory.openSession();
// 这里MyBaitis帮我们创建了代理对象
BlogerMapper blogerMapper =sqlSession.getMapper(BlogerMapper.class);
Bloger bloger=blogerMapper.getBlogerId(9);
bloger.setAge(33);
bloger.setUserName("wujianqinjian09");
blogerMapper.updateBloger(bloger);
sqlSession.commit();
sqlSession.close();
}
public static void mybatits_select() throws IOException{
// 获取SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();
// 获取回话对象
SqlSession sqlSession=sqlSessionFactory.openSession();
// 这里MyBaitis帮我们创建了代理对象
BlogerMapper blogerMapper =sqlSession.getMapper(BlogerMapper.class);
Bloger bloger=blogerMapper.getBlogerId(3);
System.out.println(bloger);
sqlSession.close();
}
}
总结:看过前几章节的小伙伴,一定觉得这篇博客实在没有啥技术含量,为了保证系列的完整性,写了这个实例,需要注意的实体变量的命名需要规范从而避免不必要的麻烦!
最后,建了一个微信群,本来想大家一起共同学习,但学习气氛好像目前还不算特别好,加群主微信进群!(由于广告太多,所以请先点赞,然后发博客名!)
创建了一个技术闲聊群:有兴趣可加我微信,拉你一起讨论杂七杂八的技术,虽然大家都不怎么活跃!
加好友备注:你的博客名 && 随便给我的任意文章点个赞或留言