1. 程式人生 > 其它 >Mybatis的新增、模糊查詢、修改

Mybatis的新增、模糊查詢、修改

技術標籤:mybatismybatis

實體類(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表示資料庫沒有匹配的資訊)
在這裡插入圖片描述