【目录】
1 通过ID去查询一个用户
2 通过用户名模糊查找匹配的用户列表
3 完成添加用户
4 修改用户
5 根据id删除用户
1 通过ID去查询一个用户
sqlMapConfig.xml:
MyBatis主配置文件SqlMapConfig.xml的属性可以参考这里。
UserMapper.xml:
映射文件属性详解可以参见官方文档,这里不作过多解释,后续文章或有介绍。
新建测试类HelloMyBatis.java,代码如下:
package com.test.test;
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;
import org.junit.Test;
import com.test.bean.User;
public class HelloMyBatis {
@Test
// 通过ID 查询用户
public void Test1() throws IOException {
//配置文件
String resource = "sqlMapConfig.xml";
//读取配置文件
InputStream in = Resources.getResourceAsStream(resource );
//需要sqlSessionFactoryBulider
SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
//创建sqlSessionfactory
SqlSessionFactory ssf = ssfb.build(in);
//生产一个sqlSession
SqlSession session = ssf.openSession();
//操作数据库
//selectOne参数1:要操作的sql语句(和Usermapper.xml里的namespace要一致) 参数2 sql语句的参数
User user = session.selectOne("UserMapper.selectUserById", 1);
System.out.println(user);
}
}
添加日志文件log4j.properties,代码如下:
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
进行测试。
2 通过用户名模糊查找匹配的用户列表
模糊查询会用到mybatis中的的#{}占位符和${}拼接符。注意他们的区别。
#{}占位符:占位
如果传入的是基本类型,那么#{}中的变量名称可以随意写
如果传入的参数是pojo类型,那么#{}中的变量名称必须是pojo中的属性.属性.属性…
${}拼接符:字符串原样拼接
如果传入的是基本类型,那么${}中的变量名必须是value
如果传入的参数是pojo类型,那么${}中的变量名称必须是pojo中的属性.属性.属性…
via:https://www.cnblogs.com/a8457013/p/7825412.html
使用拼接符容易造成sql注入,为了安全,我们一般用占位符进行模糊查询。
UserMapper.xml中添加代码如下:
测试类HelloMyBatis.java中添加代码如下:
import java.util.List;
@Test
//通过用户名模糊查找匹配的用户列表
public void Test2() throws IOException {
String resource = "sqlMapConfig.xml";
//读取配置文件
InputStream in = Resources.getResourceAsStream(resource );
//需要sqlSessionFactoryBulider
SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
//创建sqlSessionfactory
SqlSessionFactory ssf = ssfb.build(in);
//生产一个sqlSession
SqlSession session = ssf.openSession();
//操作数据库
List list = session.selectList("UserMapper.selectUserByName", "老");
for (User u : list) {
System.out.println(u);
}
}
进行测试。
3 完成添加用户
UserMapper.xml中添加代码如下:
insert into user values( null, #{u_username} , #{u_password}, #{u_sex}, #{u_createTime}, #{u_cid} )
测试类HelloMyBatis.java中添加代码如下:
import java.util.Date;
@Test
//添加用户
public void Test3() throws IOException {
String resource = "sqlMapConfig.xml";
//读取配置文件
InputStream in = Resources.getResourceAsStream(resource );
//需要sqlSessionFactoryBulider
SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
//创建sqlSessionfactory
SqlSessionFactory ssf = ssfb.build(in);
//生产一个sqlSession
SqlSession session = ssf.openSession();
//设置数据
User user = new User();
user.setU_username("新来的");
user.setU_password("123");
user.setU_sex("女");
user.setU_createTime(new Date());
user.setU_cid(12);
//操作数据库
session.insert("UserMapper.insertUser", user);
//提交事务
//在MyBatis中,进行CRUD操作的时候,只有查找是不需要自己进行手动提交的,其他三种操作都需要进行手动提交。
session.commit();
}
进行测试。
4 修改用户
UserMapper.xml中添加代码如下:
update user set u_username = #{u_username} where u_id = #{u_id}
测试类HelloMyBatis.java中添加代码如下:
@Test
//修改用户
public void Test4() throws IOException {
String resource = "sqlMapConfig.xml";
//读取配置文件
InputStream in = Resources.getResourceAsStream(resource );
//需要sqlSessionFactoryBulider
SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
//创建sqlSessionfactory
SqlSessionFactory ssf = ssfb.build(in);
//生产一个sqlSession
SqlSession session = ssf.openSession();
User user = new User();
user.setU_id(1);
user.setU_username("老大");
//操作数据库
session.update("UserMapper.updateUser", user);
//提交事务
//在MyBatis中,进行CRUD操作的时候,只有查找是不需要自己进行手动提交的,其他三种操作都需要进行手动提交。
session.commit();
}
进行测试。
5 根据id删除用户
UserMapper.xml中添加代码如下:
delete from user Where u_id = #{id}
测试类HelloMyBatis.java中添加代码如下:
@Test
//删除用户
public void Test5() throws IOException {
String resource = "sqlMapConfig.xml";
//读取配置文件
InputStream in = Resources.getResourceAsStream(resource );
//需要sqlSessionFactoryBulider
SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
//创建sqlSessionfactory
SqlSessionFactory ssf = ssfb.build(in);
//生产一个sqlSession
SqlSession session = ssf.openSession();
//操作数据库
session.delete("UserMapper.deleteUserById", 3);
//提交事务
//在MyBatis中,进行CRUD操作的时候,只有查找是不需要自己进行手动提交的,其他三种操作都需要进行手动提交。
session.commit();
}
进行测试。