MyBatis更新,删除,插入

UserMapper.java:

package com.bjsxt.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.bjsxt.pojo.User;

public interface UserMapper {
	
	/**
	 * mysql动态查询语句
	 * @param id
	 * @param username
	 * @param password
	 * @return
	 */
	List<User> selByIUP(@Param("id") int id,@Param("username") String username,@Param("password") String password);
	
	/**
	 *	通过用户去修改数据
	 * @param user
	 * @return
	 */
	int update(User user);
	
	/**
	 * 	使用in进行选择查询
	 * @param list
	 * @return
	 */
	List<User> selin(@Param("list") List<Integer> list);
	
	
	/**
	 * 	通过用户名进行表的模糊查询
	 * @param username
	 * @return
	 */
	List<User> selLike(@Param("username") String username);
	
}

UserMapper:

<?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.bjsxt.mapper.UserMapper">
  <select id="selLike" resultType="user" parameterType="string">
  	select * from t_user
  	<where>
  		<if test="username!=null and username!=''">
  		<bind name="username" value="'%'+ username +'%'"/>
  			username like #{username}
  		</if>
  	</where>
  </select>
  	
  
  	<select id="selin" resultType="User" parameterType="list">
  		select * from t_user where id in
  		<foreach collection="list" open="(" item="t" separator="," close=")">
  			#{t}
  		</foreach>
  	</select>
  
 		 <!-- 动态更新修改用户名或者密码 -->
  	<update id="update" parameterType="User">
  		update t_user
  		<set>
  			<if test="username!=null and username!=''">
  				username=#{username},
  			</if>
  			<if test="password!=null and password!=''">
  				password=#{password},
  			</if>
  		</set>
  		where id=#{id}
  	</update>
  	
  	<!-- 动态通过用户名,密码,id来查询用户的所有信息 -->
  	<select id="selByIUP" resultType="User">
  		select * from t_user
  		<where>
  			<if test="id!=0">
  				and id=#{id}
  			</if>
  			<if test="username!=null and username!=''">
  				and username=#{username}
  			</if>
  			<if test="password!=null and password!=''">
  				and password=#{password}
  			</if>
  		</where>
  	</select>
  </mapper>

User实体类:

package com.bjsxt.pojo;

import java.io.Serializable;

public class User implements Serializable{
	private int id;
	private String username;
	private String password;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + id;
		result = prime * result + ((password == null) ? 0 : password.hashCode());
		result = prime * result + ((username == null) ? 0 : username.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		User other = (User) obj;
		if (id != other.id)
			return false;
		if (password == null) {
			if (other.password != null)
				return false;
		} else if (!password.equals(other.password))
			return false;
		if (username == null) {
			if (other.username != null)
				return false;
		} else if (!username.equals(other.username))
			return false;
		return true;
	}
	public User() {
		super();
	}
	
}

工具类:

package com.bjsxt.util;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MyBatisUtil {
	private static SqlSessionFactory factory=null;
	static{
		try {
			InputStream	is = Resources.getResourceAsStream("mybatis-cfg.xml");
			 factory = new SqlSessionFactoryBuilder().build(is);
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	public static SqlSession getSession() {
		SqlSession session =null;
		if (factory!=null) {
			 session = factory.openSession(false);
		}
		return session;
	}
}

配置文件mybatis:

<?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>
  <!-- properties加载配置文件
   -->
  <properties resource="db.properties"></properties>
  <settings>
  	<setting name="logImpl" value="LOG4J"/>
  </settings>
  <typeAliases>
  	<package name="com.bjsxt.pojo"/>
  </typeAliases>
  	<environments default="dev">
 		<environment id="dev">
 			<transactionManager type="JDBC"/>
 			<dataSource type="POOLED">
 				<property name="driver" value="${jdbc.driver}"/>
 				<property name="url" value="${jdbc.url}"/>
 				<property name="username" value="${jdbc.username}"/>
 				<property name="password" value="${jdbc.password}"/>
 				
 			</dataSource>
 		</environment>
  	</environments>
  	<mappers >
  		<package name="com.bjsxt.mapper"/>
  	</mappers>
  </configuration>

 

 

 增删改查:

<?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.bjsxt.mapper.UserMapper">
  	<select id="selAll" resultType="user">
  		select * from t_user
  	</select>
  	
  	<select id="selByUP" resultType="user">
  		select * from t_user where username=#{username} and password=#{password}
  	</select>
  	
  	<insert id="instr" parameterType="user">
  		insert into t_user values (default,#{username},#{password})
  	</insert>
  	
  	<update id="update" parameterType="user">
  		update t_user set username=#{username}, password=#{password} where id= #{id}
  	</update>
  	
  	<delete id="delete" parameterType="int">
  		delete from t_user where id=#{0}
  	</delete>
  </mapper>

测试类:

package com.bjsxt.test;

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import com.bjsxt.mapper.UserMapper;
import com.bjsxt.pojo.User;
import com.bjsxt.util.MyBatisUtil;

public class TestZSGC {
	
	@Test
	public void TestInsert() {
		SqlSession session = MyBatisUtil.getSession();
		User user=new User();
		user.setUsername("杨杰");
		user.setPassword("250");
		int num = session.insert("com.bjsxt.mapper.UserMapper.instr", user);
		if (num>0) {
			System.out.println("插入成功!!");
		}else {
			System.out.println("插入失败!!");
		}
		session.close();
	}
	
	@Test
	public void Testupdate() {
		SqlSession session = MyBatisUtil.getSession();
		
		User user=new User();
		user.setId(15);
		user.setUsername("杨杰250");
		user.setPassword("就是250");
		int updatenum = session.update("com.bjsxt.mapper.UserMapper.update", user);
		if (updatenum>0) {
			System.out.println("更新成功!!");
		}else {
			System.out.println("更新失败!!");
		}
		session.close();
	}
	
	@Test
	public void Testdelete() {
		SqlSession session = MyBatisUtil.getSession();
		int delete = session.delete("com.bjsxt.mapper.UserMapper.delete", 8);
		System.out.println(delete);
		session.close();
	}
	
	@Test
	public void TestSelectAll() {
		SqlSession session = MyBatisUtil.getSession();
		UserMapper mapper = session.getMapper(UserMapper.class);
		List<User> list = mapper.selAll();
		for (User u : list) {
			System.out.println(u);
		}
		session.close();
	}
	
	@Test
	public void TestselByUP() {
		SqlSession session = MyBatisUtil.getSession();
		UserMapper mapper = session.getMapper(UserMapper.class);
		User u = mapper.selByUP("杨杰250", "就是250");
		System.out.println(u);
		session.close();
	}
	
}

UserMapper接口(增删改都是在测试类实现的,没用接口绑定!!!):

package com.bjsxt.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.bjsxt.pojo.User;

public interface UserMapper {
	
	/**
	 * 查询所有用户信息
	 * @return
	 */
	List<User> selAll(); 
	
	/**
	 * 	通过username和password去查询用户信息
	 * @param username
	 * @param password
	 * @return
	 */
	User selByUP(@Param("username") String username,@Param("password") String password);
}

数据库还有log4j的配置文件和MyBatis动态查询一样。这里的测试全部都是Junit测试,没用main方法实现。

如果不想等值查询,也有非等值查询,只不过需要转移字符( <    是   &Lt   L需要小写的 ):

  1. 和           &      & amp;  
  2. 单 引号     '      & apos;  
  3. 双引 号     "      & quot;  
  4. 大于 号     >      & gt;  
  5. 小于 号     <      & lt;   

 

posted @ 2019-12-11 08:56  sakura-yxf  阅读(337)  评论(0)    收藏  举报