例項介紹MyBatis增刪改查基本操作
阿新 • • 發佈:2018-11-03
通過上一篇部落格《MyBatis的入門介紹》我們瞭解了MyBatis基本原理
這篇我們就說說它的增刪改查基本操作
例項應用
建立Java Product專案,目錄結構如下:
資料庫結構如下
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/mybatis" /> <property name="username" value="root" /> <property name="password" value="123456" /> </dataSource> </environment> </environments> <mappers> <mapper resource="com/atguigu/day03_mybaits/test2/userMapper.xml"/> </mappers> </configuration>
userMapper.xml檔案內容
<?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.atguigu.day03_mybaits.test2.userMapper"> <insert id="addUser" parameterType="com.atguigu.day03_mybaits.test2.User"> INSERT INTO users(name,age) VALUE (#{name},#{age}) </insert> <delete id="deleteUser" parameterType="int"> DELETE FROM users WHERE id=#{id} </delete> <update id="updateUser" parameterType="com.atguigu.day03_mybaits.test2.User"> UPDATE users set NAME=#{name},age=#{age} where id=#{id} </update> <select id="getUser" parameterType="int" resultType="com.atguigu.day03_mybaits.test2.User"> select * from users where id=#{id} </select> <select id="getAllUsers" resultType="com.atguigu.day03_mybaits.test2.User"> SELECT * FROM users </select> </mapper>
Test2類新增方法
public void testAdd(){ //找配置檔案和資料庫連線 String resource = "conf.xml"; InputStream is=Test.class.getClassLoader().getResourceAsStream(resource); //建立SqlSessionFactory物件 SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is); //openSession預設手動提交,裡面引數為true預設自動提交 SqlSession session=factory.openSession(); //指定MyBatis執行的xml檔案 String statement="com.atguigu.day03_mybaits.test2.userMapper.addUser"; User u=new User(); u.setId(-1); u.setName("KK"); u.setAge(23); int insert=session.insert(statement,u); //手動提交方式 session.commit(); System.out.println(insert); }
Test2類更新方法
public void testUpdate(){
//找配置檔案和資料庫連線
String resource = "conf.xml";
InputStream is=Test.class.getClassLoader().getResourceAsStream(resource);
//建立SqlSessionFactory物件
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
//openSession預設手動提交,裡面引數為true預設自動提交
SqlSession session=factory.openSession();
//指定MyBatis執行的xml檔案
String statement="com.atguigu.day03_mybaits.test2.userMapper.addUser";
User u=new User();
u.setId(5);
u.setName("KK");
u.setAge(25);
int insert=session.update(statement,u);
//手動提交方式
session.commit();
System.out.println(insert);
}
Test2類刪除方法
public void testDelete(){
//找配置檔案和資料庫連線
String resource = "conf.xml";
InputStream is=Test.class.getClassLoader().getResourceAsStream(resource);
//建立SqlSessionFactory物件
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
//openSession預設手動提交,裡面引數為true預設自動提交
SqlSession session=factory.openSession();
//指定MyBatis執行的xml檔案
String statement="com.atguigu.day03_mybaits.test2.userMapper.addUser";
int insert=session.delete(statement,5);
//手動提交方式
session.commit();
System.out.println(insert);
}
Test2類查詢一條方法
public void testGetUser(){
//找配置檔案和資料庫連線
String resource = "conf.xml";
InputStream is=Test.class.getClassLoader().getResourceAsStream(resource);
//建立SqlSessionFactory物件
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
//openSession預設手動提交,裡面引數為true預設自動提交
SqlSession session=factory.openSession();
//指定MyBatis執行的xml檔案
String statement="com.atguigu.day03_mybaits.test2.userMapper.addUser";
User u=session.selectOne(statement,1);
//手動提交方式
session.commit();
System.out.println(u);
}
Test2類查詢全部方法
public void testGetAll(){
//找配置檔案和資料庫連線
String resource = "conf.xml";
InputStream is=Test.class.getClassLoader().getResourceAsStream(resource);
//建立SqlSessionFactory物件
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
//openSession預設手動提交,裡面引數為true預設自動提交
SqlSession session=factory.openSession();
//指定MyBatis執行的xml檔案
String statement="com.atguigu.day03_mybaits.test2.userMapper.addUser";
List<User>list=session.selectList(statement);
//手動提交方式
session.commit();
System.out.println(list);
}