【MyBatis】----【MyBatis】--封装---别名---properties
2024-09-01 12:17:35
一、核心配置文件
<?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>
<!-- 最开始加载引用db.properties文件 -->
<properties resource="db.properties"/>
<!-- 取别名 以下情况别名为类名 -->
<typeAliases>
<package name="com.myBatis.entity"/>
</typeAliases>
<!--
development : 开发模式
work : 工作模式
-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<!-- 引用映射文件 -->
<mappers >
<mapper resource="com/myBatis/mapper/userMapper.xml"/>
</mappers>
</configuration>
二、实体类
package com.myBatis.entity; public class EUser {
private Integer id;
private String name;
private Integer age;
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public void setId(Integer id) {
this.id = id;
}
@Override
public String toString() {
return "EUser [id=" + id + ", name=" + name + ", age=" + age + "]";
} }
EUser.java
三、实体类的映射文件
<?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,namespace的值习惯上设置成包名+sql映射文件名,
这样就能够保证namespace的值是唯一的
-->
<mapper namespace="com.myBatis.mapper.userMapper.xml">
<!-- 根据id查询得到一个user对象 -->
<select id="getUser" parameterType="int" resultType="EUser">
select * from users where id=#{id}
</select>
<!-- 根据id查询删除一个user对象 -->
<delete id="deleteUser" parameterType="EUser">
delete from users where id=#{id}
</delete>
<!-- 创建用户(Create) -->
<insert id="addUser" parameterType="EUser">
insert into users values(null,#{name},#{age})
</insert>
<!-- 修改用户(Update) -->
<update id="updateUser" parameterType="EUser">
update users set name=#{name},age=#{age} where id=#{id}
</update>
</mapper>
四、封装类
package com.myBatis.util; import java.io.IOException;
import java.io.Reader; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class myBtaisUtil {
static Reader reader=null;
static SqlSessionFactory sqlSessionFactory= null;
static SqlSession sqlSession = null;
/**
* 加载核心配置文件
* 获取SqlSessionFactory
* @return SqlSessionFactory
*/
public static SqlSessionFactory getsqlSessionFactory() {
try {
reader = Resources.getResourceAsReader("SqlMapConfig.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
e.printStackTrace();
}
return sqlSessionFactory;
}
/**
* 获取SqlSession
* @return SqlSession
*/
public static SqlSession getsqlSession() {
return sqlSession= getsqlSessionFactory().openSession(true);
}
}
myBtaisUtil.java
五、properties文件
driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///mybatis
username=root
password=root
db.properties
六、测试类
package myBatisTest;
import java.io.IOException;
import java.io.Reader;
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 org.junit.Test; import com.myBatis.entity.EUser;
import com.myBatis.util.myBtaisUtil; public class TestUser {
//修改
@Test
public void testUpdateUser() {
SqlSession sqlSession=myBtaisUtil.getsqlSession();
//先查找
String select = "com.myBatis.mapper.userMapper.xml.getUser";
EUser user = sqlSession.selectOne(select, 7);
System.out.println(user);
//再修改
user.setName("改啦7777");
user.setAge(50);
String update = "com.myBatis.mapper.userMapper.xml.updateUser";
int i = sqlSession.update(update, user);
System.out.println(i);
EUser user1= sqlSession.selectOne(select, 7);
System.out.println(user1);
}
//添加
@Test
public void testAddUser() {
SqlSession sqlSession=myBtaisUtil.getsqlSession();
String add = "com.myBatis.mapper.userMapper.xml.addUser";
EUser user = new EUser();
user.setName("用户孤傲苍狼");
user.setAge(20);
int i = sqlSession.insert(add, user);
System.out.println(i);
}
//删除
@Test
public void testDeleteUser() {
SqlSession sqlSession=myBtaisUtil.getsqlSession();
String delete = "com.myBatis.mapper.userMapper.xml.deleteUser";
int i= sqlSession.delete(delete, 6);
System.out.println(i);
}
//查询
@Test
public void testGetUser() {
SqlSession sqlSession=myBtaisUtil.getsqlSession();
String select = "com.myBatis.mapper.userMapper.xml.getUser";
EUser user = sqlSession.selectOne(select, 1);
System.out.println(user);
}
}
TestUser.java
注:
类的映射文件中的<mapper namespace="com.myBatis.mapper.userMapper.xml"> 映射文件后缀名可不写
测试类中的 String select = "com.myBatis.mapper.userMapper.xml.getUser"; 映射文件后缀名可不写
参考:MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
MyBatis学习总结(三)——优化MyBatis配置文件中的配置
学习 MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
最新文章
- python 生成验证码
- IIS7.5+WebConfig实现页面伪静态和301重定向
- JS_ECMA基本语法中的几种封装的小函数
- 实现iOS长时间后台的两种方法:Audiosession和VOIP(转)
- oracle10~11g在centos5~6版本上安装整体总结如下
- Java NIO和IO的主要区别
- DreamWeaver文件保存时,提示";发生共享违例";问题的解决方法
- MyEclipse启动时报 Unable to acquire application service. Ensure that the org.eclips
- Base64实现android端图片上传到server端
- quartz任务时间调度入门使用
- python遇到的知识点
- 学习DRF之前
- tkinter做一个简单的登陆页面(十六)
- 在学习DRF之前
- jquery函数封装
- 优化SQL Server的内存占用之执行缓存
- 编写高质量代码改善C#程序的157个建议——建议18:foreach不能代替for
- swarm 服务器安装
- HDU2255:奔小康赚大钱(KM算法)
- openGL 预定义变量04