avatar

目录
MyBatis

版本锁定

xml
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>

DAO层存放接口

java
public interface IUserDo {

void saveUser(User user);
}

main层存放对象

java
public class User implements Serializable {
private String sex;
private String username;
private String address;
private Date birthday;

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

public Date getBirthday() {
return birthday;
}

public void setBirthday(Date birthday) {
this.birthday = birthday;
}

@Override
public String toString() {
return "User{" +
"sex=" + sex +
", username='" + username + '\'' +
", address='" + address + '\'' +
", birthday=" + birthday +
'}';
}
}

test层调用

java
public class test {
private IUserDo userDo;
private InputStream in;
private SqlSession sqlSession;


@Before//用于在测试方法执行之前执行
public void init()throws Exception{
//1.读取配置文件,生成字节输入流
in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.获取SqlSessionFactory
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
//3.获取SqlSession对象
sqlSession = factory.openSession();
//4.获取dao的代理对象
userDo= sqlSession.getMapper(IUserDo.class);
}

@After//用于在测试方法执行之后执行
public void destroy()throws Exception{
//提交事务
sqlSession.commit();
//6.释放资源
sqlSession.close();
in.close();
}


@Test
public void testSave(){
User user=new User();
user.setAddress("北京市");
user.setSex("男");
user.setBirthday(new Date());
user.setUsername("wo");
System.out.println("保存操作之前:"+user);
userDo.saveUser(user);
System.out.println("保存操作之后:"+user);

}

}

映射文件

xml
<mapper namespace="io.likai.dao.IUserDo">

<insert id="saveUser" parameterType="io.likai.domain.User">

insert into user(username,address,sex,birthday)values(#{username},#{address},#{sex},#{birthday});
</insert>
</mapper>
namespace是dao层地址
id是接口名字
paramertype是主方法的地址

sql文件

xml
<configuration> <!-- 配置mybatis的环境 -->
<environments default="mysql"> <!-- 配置mysql的环境 -->
<environment id="mysql"> <!-- 配置事务的类型 -->
<transactionManager type="JDBC"></transactionManager> <!-- 配置连接数据库的信息:用的是数据源(连接池) -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test?serverTimezone=GMT"/>
<property name="username" value="root"/>
<property name="password" value="likai"/>
</dataSource>
</environment>
</environments> <!-- 告知mybatis映射配置的位置 -->
<mappers>
<mapper resource="io/likai/dao/User.xml"/>
</mappers>
</configuration>

常用注解

@Insert:实现新增
@Update:实现更新
@Delete:实现删除
@Select:实现查询
@Result:实现结果集封装
@Results:可以与
@Result一起使用,封装多个结果集
@ResultMap:实现引用
@Results定义的封装
@One:实现一对一结果集封装
@Many:实现一对多结果集封装
@SelectProvider: 实现动态SQL映射
@CacheNamespace:实现注解二级缓存的使用

注解的SqlMapConfig配置

xml
<mappers>
<package name="io.likai.dao"/>
</mappers>
添加扫描位置
文章作者: 李恺
文章链接: http://likai-vip.github.io/2020/02/23/MyBatis/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 likai
打赏
  • 微信
    微信
  • 支付寶
    支付寶

评论