配置xml文件
注意:数据库表的字段名要与封装对象的属性名严格一致,windows上MySQL不区分大小写,但是Linux上面严格区分大小写,如果两者不一致则可以配置resultMap标签来解决
<?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="edu.yjsj.dao.UserDaoImpl">
<!-- 查询所有 -->
<select id="selectAll" resultType="edu.yjsj.domain.User">
select * from user
</select>
<!-- 保存用户信息 -->
<insert id="saveUser" parameterType="edu.yjsj.domain.User">
<!--返回自增id keyProperty对应实体类 keyColumn对应表-->
<selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
select last_insert_id()
</selectKey>
insert into user(userName,userPwd) values (#{userName},#{userPwd})
</insert>
<!-- 更新用户信息 -->
<update id="updateUser" parameterType="edu.yjsj.domain.User">
update user set userName = #{userName},userPwd = #{userPwd} where id = #{id};
</update>
<!-- 删除用户信息 -->
<delete id="deleteUser" parameterType="java.lang.Integer">
delete from user where id = #{id}
</delete>
<!-- 模糊查询用户信息 -->
<select id="selectLike" parameterType="String" resultType="edu.yjsj.domain.User">
<!-- select * from user where userPwd like #{userPwd} -->
select * from user where userPwd like '${value}'
</select>
<!-- 查询所有数据条数 -->
<select id="selectTotal" resultType="int">
select count(id) from user
</select>
<!-- ognl测试 -->
<select id="selectByQuery" parameterType="edu.yjsj.domain.Query" resultType="edu.yjsj.domain.User">
select * from user where userName like #{user.userName}
</select>
</mapper>
接口代码
package edu.yjsj.dao;
import edu.yjsj.domain.Query;
import edu.yjsj.domain.User;
import java.util.List;
public interface UserDaoImpl {
//查询所有
List<User> selectAll();
//保存用户信息
void saveUser(User user);
//更新信息
void updateUser(User user);
//删除信息
void deleteUser(Integer id);
//模糊查询
List<User> selectLike(String str);
//查询所有数据条数
int selectTotal();
//ognl测试
List<User> selectByQuery(Query query);
}
运行测试类
package edu.yjsj.test;
import edu.yjsj.dao.UserDaoImpl;
import edu.yjsj.domain.Query;
import edu.yjsj.domain.User;
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 org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.InputStream;
import java.util.List;
public class TestSelectAll {
private InputStream in = null;
private SqlSessionFactory factory = null;
private SqlSession session =null;
private UserDaoImpl userDao = null;
@Before
public void init()throws Exception{
//1.读取配置文件
in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.创建SqlSessionFactory工厂
factory = new SqlSessionFactoryBuilder().build(in);
//3.使用工厂产生SqlSession对象
session = factory.openSession();
//4.使用SqlSessiond对象创建Dao接口的代理对象
userDao = session.getMapper(UserDaoImpl.class);
}
@After
public void destory() throws Exception{
session.commit();
//释放资源
session.close();
in.close();
}
@Test
public void testSelectAll () throws Exception{
//使用代理对象执行方法
List<User> userList = userDao.selectAll();
for (User user:userList) {
System.out.println(user);
}
}
@Test
public void saveUser(){
User user = new User();
user.setUserName("王二");
user.setUserPwd("123");
System.out.println(user);
userDao.saveUser(user);
System.out.println(user);
}
@Test
public void updateUser(){
User user = new User();
user.setUserName("王五");
user.setUserPwd("123");
user.setId(3);
userDao.updateUser(user);
}
@Test
public void deleteUser(){
userDao.deleteUser(4);
}
@Test
public void selectLike(){
List<User> userList = userDao.selectLike("%12%");
for (User user:userList) {
System.out.println(user);
}
}
@Test
public void selectTotal(){
System.out.println(userDao.selectTotal());
}
@Test
public void selectByQuery(){
Query query = new Query();
User u = new User();
u.setUserName("张三");
query.setUser(u);
List<User> userList = userDao.selectByQuery(query);
for (User user:userList) {
System.out.println(user);
}
}
}
没啥好说的,比较简单