实体类(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表示数据库没有匹配的信息)