mybatis入门,CRUD,万能Map,模糊查询
2024-09-02 16:34:48
第一个Mybatis程序
核心配置文件mybatis-config.xml
<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/db4?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/dao/UserMapper.xml"/>
</mappers>
</configuration>
编写mybatis工具类
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession() {
return sqlSessionFactory.openSession();
}
}
编写代码
- 实体类User
public class User {
private int id;
private String username;
private String password;
}
//重写方法toString方法等
- Dao接口UserMapper.java
public interface UserMapper {
List<User> getUserList();
}
- 接口实现类Mapper配置文件UserMapper.xml
<?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.dao.UserMapper">
<select id="getUserList" resultType="com.pojo.User">
select * from db4.user
</select>
</mapper>
- test类
public class test {
@Test
public void test1(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = userMapper.getUserList();
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
}
- 约定大于配置
<build>
<resources>
<resource>
<directory>src/main/resources/</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource> </resources>
</build>
CRUD
- UserMapper.xml
<?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.dao.UserMapper">
<select id="getUserList" resultType="com.pojo.User">
select *
from db4.user
</select>
<select id="getUserById" parameterType="int" resultType="com.pojo.User">
select *
from db4.user
where id = #{id}
</select>
<select id="addUser" parameterType="com.pojo.User">
insert into db4.user (id, username, password)
values (#{id}, #{username}, #{password})
</select>
<select id="updateUser" parameterType="com.pojo.User">
update db4.user
set username = #{username},
password = #{password}
where id = #{id};
</select>
<select id="deleteUser" parameterType="int">
delete
from db4.user
where id = #{id}
</select>
</mapper>
- UserMapper.java
public interface UserMapper {
List<User> getUserList();
User getUserById(int id);
void addUser(User user);
void updateUser(User user);
void deleteUser(int id);
}
- test.java
public class test {
@Test
public void getUserList_test(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = userMapper.getUserList();
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
@Test
public void getUserById_test(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
System.out.println(user);
sqlSession.close();
}
@Test
public void addUser_test(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.addUser(new User(66,"zhang", "7777"));
sqlSession.commit();
sqlSession.close();
}
@Test
public void updateUser_test(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.updateUser(new User(2,"oooo", "000000"));
sqlSession.commit();
sqlSession.close();
}
@Test
public void deleteUser_test(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.deleteUser(10);
sqlSession.commit();
sqlSession.close();
}
}
万能的Map查询
- Map被用为构造器
User getUserByMapId(Map map);
<select id="getUserByMapId" parameterType="map" resultType="com.pojo.User">
select *
from db4.user
where id = #{mapId}
</select>
@Test
public void getUserByMapId_test() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
Map<String, Object> map = new HashMap<>();
map.put("mapId", 1);
User user = userMapper.getUserByMapId(map);
System.out.println(user);
sqlSession.commit();
sqlSession.close();
}
模糊查询怎么写
- java执行代码的时候,使用通配符% %
List<User> userlist = mapper.getUserLike("%张%");
- 在sql拼接中使用通配符!
select * from db4.user where name like "%"#{value}"%"
最新文章
- Intel 推出 DPDK 开发包的意义是什么?
- 使用scala开发spark入门总结
- 16 BasicHashTable基本哈希表类(三)——Live555源码阅读(一)基本组件类
- visual studio 局域网远程调试web项目
- UINavigationController 子控制器管理原理
- C#程序集编译输出XML文档的作用
- MySQL 当记录不存在时插入(insert if not exists)
- 自己实现的简单MVC框架(类似Struts2+Spring)
- UVALive 6869(后缀数组)
- hdu_5742_It&#39;s All In The Mind
- BZOJ 4408: [Fjoi 2016]神秘数 [主席树]
- 小小知识点(六)——算法中的P问题、NP问题、NP完全问题和NP难问题
- Django的model form组件
- 神烦之float
- iOS 渐变提示。错误弹出提示 几秒自动消失
- Python学习之旅(二十九)
- 原生js 数组的迭代的方法
- orcl 之 导入和导出(2)
- 深入浅出php socket编程
- 鼠标移上去触动hover致使div向上移动几个相素(动画transition轻轻的移动)