Mybatis的新增、模糊查詢、修改
阿新 • • 發佈:2021-02-02
實體類(get,set,toString方法省略,需要手動新增)
package com.gx.pojo;
public class User {
private Integer id;
private String name;
private Integer age;
}
Dao介面類
public interface Userdao {
/*查詢*/
List<User> selcetUser();
/*新增*/
int insertUser( User user);
/*修改*/
int updateUser(User user);
/*like查詢*/
/*1:在java程式碼中指定like的內容*/
List<User> selectLinkone(String name);
/*2:在mapper檔案中拼接like的內容*/
List<User> selectliketwo(String name);
}
Dao介面實現類
public class Userdaoimpl implements Userdao {
@Override
public List< User> selcetUser() {
//獲取sqlSession物件
SqlSession sqlSession = MybatisUtils.getSqlSession();
String sql ="com.gx.dao.Userdao.selcetUser";
//執行sql
List<User> UserList = sqlSession.selectList(sql);
sqlSession.close();
return UserList;
}
@Override
public int insertUser(User user) {
SqlSession sqlSession = MybatisUtils.getSqlSession();
String sql ="com.gx.dao.Userdao.insertUser";
int num = sqlSession.insert(sql,user);
sqlSession.commit();
return num;
}
@Override
public List<User> selectLinkone(String name) {
return null;
}
@Override
public List<User> selectliketwo(String name) {
return null;
}
}
Mapper(sql語句配置檔案)
<?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">
<!--namespace:必須有值,自定義的唯一字串 -->
<mapper namespace="com.gx.dao.Userdao">
<!--<select>: 查詢資料, 標籤中必須是 select 語句
id: sql 語句的自定義名稱,推薦使用 dao 介面中方法名稱,
resultType: 查詢語句的返回結果資料型別,使用全限定類名
-->
<!--查詢-->
<select id="selcetUser" resultType="com.gx.pojo.User" >
select id,name,age from user order by id
</select>
<!--新增-->
<insert id="insertUser" >
insert into user value(#{id},#{name},#{age})
</insert>
<update id="updateUser">
UPDATE `student`.`user` SET `name` = #{name}, `age` = #{age} WHERE `id` = #{id};
</update>
<!--在java程式碼中指定like值-->
<select id="selectLinkone" resultType="com.gx.pojo.User">
select * from user where name like #{name}
</select>
<!-- /*2:在mapper檔案中拼接like的內容*/-->
<select id="selectliketwo" resultType="com.gx.pojo.User">
select * from user where name like "%"#{name}"%"
</select>
</mapper>
工具類
public class MybatisUtilone {
private static SqlSessionFactory factory = null;
static {
String config="mybatis-sql.xml"; // 需要和你的專案中的檔名一樣
try {
InputStream in = Resources.getResourceAsStream(config);
//建立SqlSessionFactory物件,使用SqlSessionFactoryBuild
factory = new SqlSessionFactoryBuilder().build(in);
} catch (IOException e) {
e.printStackTrace();
}
}
//獲取SqlSession的方法
public static SqlSession getSqlSession() {
SqlSession sqlSession = null;
if( factory != null){
sqlSession = factory.openSession();// 非自動提交事務
}
return sqlSession;
}
}
測試類
public class TestMybatis {
@Test
public void sqlSelect() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
String sqlId = "com.gx.dao.Userdao.selcetUser";
List<User> UserList = sqlSession.selectList(sqlId);
for (User user : UserList) {
System.out.println("查詢的使用者=" + user);
}
sqlSession.close();
}
@Test
public void sqlinsert() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
String sqlId = "com.gx.dao.Userdao.insertUser";
User user = new User();
user.setName("oni");
user.setAge(21);
int nums = sqlSession.insert(sqlId, user);
sqlSession.commit();//提交事務
System.out.println("執行新增insert的結果=" + nums);
sqlSession.close();
}
@Test
public void RunselectLinkone(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
Userdao dao = sqlSession.getMapper(Userdao.class);
String name = "%李%";
List<User> userList = dao.selectLinkone(name);
for (User user : userList) {
System.out.println("查詢的使用者=" + user);
}
sqlSession.close();
}
@Test
public void Runselectliketwo(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
Userdao dao = sqlSession.getMapper(Userdao.class);
String name = "李";
List<User> userList = dao.selectliketwo(name);
for (User user : userList) {
System.out.println("查詢的使用者=" + user);
}
sqlSession.close();
}
}
新增控制檯輸出
模糊查詢(total:0表示資料庫沒有匹配的資訊)