CURD
命名空间namespace
namespace的包名要和Dao/mapper接口的包名一致!
查询语句Select
选择,查询语句
- id:就是对应发namespace中的方法名
resultType:Sql语句执行的返回值
parameterType:参数类型
1 2 3
| <select id="getUserById" resultType="top.huii.pojo.User" parameterType="int"> select * from javaweb.user where id = #{id} </select>
|
结果:User{id=1, name='张三', pwd='11111111'}
新增Insert
1 2 3
| <insert id="addUser" parameterType="top.huii.pojo.User"> insert into javaweb.user (id, name, pwd) values (#{id}, #{name}, #{pwd}); </insert>
|
修改Update
1 2 3
| <update id="updateUser" parameterType="top.huii.pojo.User"> update javaweb.user set name=#{name}, pwd=#{pwd} where id = #{id}; </update>
|
删除Delete
1 2 3
| <delete id="deleteUser" parameterType="int"> delete from javaweb.user where id=#{id}; </delete>
|
代码展示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| package top.huii.utils;
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 java.io.IOException; import java.io.InputStream;
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(){ SqlSession sqlSession = sqlSessionFactory.openSession(); return sqlSession; } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| package top.huii.dao;
import top.huii.pojo.User;
import java.util.List;
public interface UserDao { List<User> getUserList();
User getUserById(int id);
int addUser(User user);
int updateUser(User User);
int deleteUser(int id); }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <?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="top.huii.dao.UserDao"> <select id="getUserList" resultType="top.huii.pojo.User"> select * from javaweb.user; </select> <select id="getUserById" resultType="top.huii.pojo.User" parameterType="int"> select * from javaweb.user where id = #{id}; </select> <insert id="addUser" parameterType="top.huii.pojo.User"> insert into javaweb.user (id, name, pwd) values (#{id}, #{name}, #{pwd}); </insert> <update id="updateUser" parameterType="top.huii.pojo.User"> update javaweb.user set name=#{name}, pwd=#{pwd} where id = #{id}; </update> <delete id="deleteUser" parameterType="int"> delete from javaweb.user where id=#{id}; </delete> </mapper>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| package top.huii.dao;
import org.apache.ibatis.session.SqlSession; import org.junit.Test; import top.huii.pojo.User; import top.huii.utils.MybatisUtils;
import java.util.List;
public class UserDaoTest { @Test public void Test() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class); List<User> userList = mapper.getUserList();
for (User user : userList) { System.out.println(user); } sqlSession.close();
}
@Test public void getUserById(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserDao mapper = sqlSession.getMapper(UserDao.class);
User user = mapper.getUserById(1); System.out.println(user);
sqlSession.close(); }
@Test public void addUser(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserDao mapper = sqlSession.getMapper(UserDao.class);
int i = mapper.addUser(new User(4, "你好试试", "11122333")); if (i > 0){ System.out.println("成功"); } sqlSession.commit(); sqlSession.close(); }
@Test public void updateUser(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserDao mapper = sqlSession.getMapper(UserDao.class); mapper.updateUser(new User(4, "1111", "12000"));
sqlSession.commit(); sqlSession.close(); }
@Test public void deleteUser(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserDao mapper = sqlSession.getMapper(UserDao.class); mapper.deleteUser(1);
sqlSession.commit(); sqlSession.close(); } }
|
万能Map
实体类中表太多,可以用map
配置解析
核心配置文件
MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下:
- configuration(配置)
- properties(属性)
- settings(设置)
- typeAliases(类型别名)
- typeHandlers(类型处理器)
- objectFactory(对象工厂)
- plugins(插件)
- environments(环境配置)
- environment(环境变量)
- transactionManager(事务管理器)
- dataSource(数据源)
- databaseIdProvider(数据库厂商标识)
- mappers(映射器)