IT评测·应用市场-qidao123.com
标题:
Spring笔记_mybatis
[打印本页]
作者:
锦通
时间:
2023-3-14 15:56
标题:
Spring笔记_mybatis
mybatis
使用数据库连接池初始化连接资源
将sql语句抽取到xml配置文件中
使用反射、内省等底层技术,自动将实体与表进行属性与字段的自动映射
介绍
mybatis 是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。mybatis通过xml或注解的方式将要执行的各种 statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句最后mybatis框架执行sql并将结果映射为java对象并返回。采用ORM思想解决了实体和数据库映射的问题,对jdbc 进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api打交道,就可以完成对数据库的持久化操作。
步骤
添加坐标
<dependency>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><groupId>mysql</groupId>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><artifactId>mysql-connector-java</artifactId>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><version>8.0.26</version>
</dependency>
<dependency>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><groupId>org.mybatis</groupId>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><artifactId>mybatis</artifactId>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><version>3.5.6</version>
</dependency>
复制代码
创建user数据表
CREATE TABLE USER(<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, userName VARCHAR(32) not null, passWord VARCHAR(32) not null )
编写user实体类
package com.spring.demo;
/**
* @author Enki
* @Version 1.0
*/
public class User {
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>private int id ;
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>private String userName;
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>private String passWord;
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>public int getId() {
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>return id;
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>}
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>public void setId(int id) {
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>this.id = id;
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>}
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>public String getUserName() {
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>return userName;
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>}
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>public void setUserName(String userName) {
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>this.userName = userName;
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>}
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>public String getPassWord() {
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>return passWord;
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>}
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>public void setPassWord(String passWord) {
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>this.passWord = passWord;
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>}
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>@Override
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>public String toString() {
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>return "User{" +
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>"id=" + id +
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>", userName='" + userName + '\'' +
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>", passWord='" + passWord + '\'' +
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>'}';
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>}
}
复制代码
编写映射文件UserMapper.xml
在resource下新建文件夹
<?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="userMapper">
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><select id="findAll" resultType="com.spring.demo.User">
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>select * from user
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases></select>
</mapper>
复制代码
找到userMapper文件下的findAll方法并执行结果封住为User类型
核心配置文件
<?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>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><environments default="development">
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><environment id="development">
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><transactionManager type="JDBC"></transactionManager>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><dataSource type="POOLED">
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><property name="driver" value="com.mysql.jdbc.Driver"/>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><property name="url" value="jdbc:mysql://localhost:3306/test"/>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><property name="username" value="root"/>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><property name="password" value="enki"/>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases></dataSource>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases></environment>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases></environments>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><mappers>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><mapper resource="com\spring\mybatis\demo\mapper\UserMapper.xml"/>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases></mappers>
</configuration>
复制代码
编写测试
查询:
@Test
public void test() throws IOException {
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//获得核心配置文件
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>InputStream resourceAsStream = Resources.getResourceAsStream("sqMapperConfig.xml");
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//获得sqlSession工厂对象
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//获得sqlSession对象
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>SqlSession sqlSession = build.openSession();
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//执行操作 参数
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>List<User> objects = sqlSession.selectList("userMapper.findAll");
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//测试
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>System.out.println(objects);
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>sqlSession.close();
}
复制代码
添加
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><insert id="insertUser" parameterType="com.spring.demo.User">
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>insert into user values(#{id},#{userName},#{passWord})
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases></insert>
复制代码
@Test
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>public void test02() throws IOException ?。
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//获得核心配置文件
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>InputStream resourceAsStream = Resources.getResourceAsStream("sqMapperConfig.xml");
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//获得sqlSession工厂对象
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//获得sqlSession对象
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>SqlSession sqlSession = build.openSession();
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//执行操作 参数
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>int insert = sqlSession.insert("userMapper.insertUser",new User("zhangsan","2121"));
//mybatis 默认不提交事务 主动提交
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>sqlSession.commit();
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//测试
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>System.out.println(insert);
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>sqlSession.close();
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>}
复制代码
修改
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><update id="updateUser" parameterType="com.spring.demo.User">
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>update user set passWord=#{passWord} where userName=#{userName}
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases></update>
复制代码
@Test
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>public void test03() throws IOException {
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//获得核心配置文件
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>InputStream resourceAsStream = Resources.getResourceAsStream("sqMapperConfig.xml");
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//获得sqlSession工厂对象
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//获得sqlSession对象
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>SqlSession sqlSession = build.openSession();
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//执行操作 参数
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>int update = sqlSession.update("userMapper.updateUser", new User("zhangsan", "1111"));
//mybatis 默认不提交事务
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>sqlSession.commit();
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//测试
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>System.out.println(update);
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>sqlSession.close();
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>}
复制代码
删除
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><delete id="deleteUser" parameterType="com.spring.demo.User">
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>delete from user where userName=#{userName}
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases></delete>
复制代码
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>@Test
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>public void test04() throws IOException {
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//获得核心配置文件+
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>InputStream resourceAsStream = Resources.getResourceAsStream("sqMapperConfig.xml");
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//获得sqlSession工厂对象
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//获得sqlSession对象
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>SqlSession sqlSession = build.openSession();
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//执行操作 参数
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>int delete = sqlSession.delete("userMapper.deleteUser", new User("zhangsan", "1111"));
//mybatis 默认不提交事务
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>sqlSession.commit();
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>//测试
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>System.out.println(delete);
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases><typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>sqlSession.close();
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>}
复制代码
或者直接用id删除
<delete id="deleteUser" parameterType="java.lang.Integer">
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>delete from user where userName=#{id}
</delete>
复制代码
所以可以根据sql语句的所需要的参数类型进行对paramterType的类型进行对应,不一定必须写数据库的封装类型
映射部分属性
常用配置解析
数据库环境的配置 支持多环境配置
其中,
事务管理器(transactionManager)类型
有两种:
• JDBC:这个配置就是直接使用了JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作用域。
• MANAGED:这个配置几乎没做什么。它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如JEE
应用服务器的上下文)。 默认情况下它会关闭连接,然而一些容器并不希望这样,因此需要将 closeConnection 属性设置
为 false 来阻止它默认的关闭行为。
其中,数据源(dataSource)类型有三种:
• UNPOOLED:这个数据源的实现只是每次被请求时打开和关闭连接。
• POOLED:这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来。(JDBC使用POOLED)
• JNDI:这个数据源的实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置
一个 JNDI 上下文的引用
mapper标签
用于加载映射,加载方式如下:
使用相对于类路径的资源引用
使用完全限定资源定位符(URL)
使用映射器接口实现类的完全限定类名
将包内映射器接口实现全部注册为映射器
properties标签
单独抽取出来,明确分工
typeAliases标签
用于设置别名
<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>
复制代码
常用apl SqlSessionFactory build(InputStream inputStream)
//获得核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("sqMapperConfig.xml");
//获得sqlSession工厂对象
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
//获得sqlSession对象
SqlSession sqlSession = build.openSession();
复制代码
方法解析openSession()会默认开启一个事务,但事务不会自动提交,也就意味着需要手动提交openSession(boolean autoCommit)参数为是否自动提交,如果设置为true,那么不需要手动提交事务SqlSession实例对象
可以查询单个对象
mybatis的代理开发
mapper接口开发方法需要编写Mapper接口由mybatis框架根据接口定义创建接口的动态代理对象;
需要遵循以下规范:
Mapper.xml文件中的namespace与mapper接口的全限定名相同
Mapper接口方法名和Mapper.xml中定义的每个statement的id相同
Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同
Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同
测试
public static void main(String[] args) throws IOException {<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapperConfig.xml");<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>SqlSession session = build.openSession();<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>UserMapper mapper = session.getMapper(UserMapper.class);<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>List users = mapper.findAll();<typeAliases>
<typeAlias type="com.spring.demo.User" alias="user"/>
</typeAliases>System.out.println(users);}
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4