您的位置 首页 java

Mybatis入门(二)——增删改查

Java 语言凭借着其良好的特性与广泛的开源应用框架,以及众多的应用支持成为市场占有率最高的语言.SSM框架作为java开发目前应用最为广泛的框架组合,也是java学习必学的三大基础框架.今天小编将与大家一起进行Mybaits框架的学习,本期学习将分为四篇文章进行介绍,欢迎大家关注小编以便及时获得最新文章.

上一篇文章小编着重介绍了Mybaits框架的基础原理,以及相关的概念,本文小编将带着大家做一个简单的增删改查小案例,深入的了解下mybaits框架的实际应用.对于未观看上一篇文章,对Mybaits不是太了解的读者可以点击下面链接进行观看上一篇文章

上一篇:

Mybatis增删改查基本操作

一、XML实现方式

1、mapper.xml的配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "">
<!-- 通常使用包名逆序作为命名空间,命名空间的存在也是为了防止多个mapper.xml中出现重复的id -->
<mapper namespace="com.mybatis.mapper.UserMapper">
 <!-- 新增用户数据 -->
 <insert id="insertUser" parameterType="com.mybatis.model.User">
 <!-- #{name}相当于jdbc中的的?号,name值与Bean字段对应,可自动获取 -->
 insert into users values(#{id}, #{ username }, #{password}, #{email}, #{age})
 </insert>
 
 <!-- 查找用户数据 -->
 <select id="selectUser" resultType="com.mybatis.model.User" parameterType="int">
 select * from users where id = #{id}
 </select>
 
 <!-- 查找用户数据集合 -->
 <!-- 基本数据类型可以不用写完整类名 -->
 <select id="selectUsers" resultType="com.mybatis.model.User" parameterType="int">
 select * from users t where t.age = #{age}
 </select> 
 
 <!-- 更新用户数据 -->
 <update id="updateUser" parameterType="com.mybatis.model.User">
 update users set age = #{age} where id = #{id}
 </update>
 
 <!-- 删除用户数据 -->
 <delete id="deleteUser" parameterType="int">
 delete from users where id = #{id}
 </delete>
</mapper>
 

2、单元测试代码

/**
* 使用XML配置实现CRUD操作
*/
public class DbTest2 {
 
 private SqlSessionFactory sqlSessionFactory;
 /**
 * 初始化工作
 */
 @Before
 public void init() throws IOException {
 //通过mybatis提供的资源加载类加载配置文件
  reader  reader = Resources.getResourceAsReader("Configuration.xml");
 //获取SqlSessionFactoryBuilder
 SqlSessionFactoryBuilder sqlSessionFactroyBuilder = new SqlSessionFactoryBuilder();
 //根据XML配置文件构建SqlSessionFactory
 SqlSessionFactory sqlSessionFactory = sqlSessionFactroyBuilder.build(reader);
 this.sqlSessionFactory = sqlSessionFactory;
 }
 
 //新增操作
 @Test
 public void insertUser() {
 //Mybatis默认情况下不会commit,即默认connection.setAutoCommit(false);
 //传入true代表自动提交
 SqlSession session = sqlSessionFactory.openSession(true);
 try {
 User user = new User();
 user.setId("1");
 user.setUsername("zhangsan");
 user.setPassword("123456");
 user.setAge("18");
 user.setEmail("zhangsan@163.com");
 session.insert("com.mybatis.mapper.UserMapper.insertUser", user);
 } finally {
 session. close ();
 }
 }
 
 //查询操作
 @Test
 public void queryUser() {
 SqlSession session = sqlSessionFactory.openSession(true);
 try {
 User user = session.selectOne("com.mybatis.mapper.UserMapper.selectUser", 1);
 System.out.println(user);
 } finally {
 session.close();
 }
 }
 
 //查询多条操作
 @Test
 public void queryUsers() {
 SqlSession session = sqlSessionFactory.openSession(true);
 try {
 List<User> userList = session.selectList("com.mybatis.mapper.UserMapper.selectUsers", 18);
 System.out.println(userList.size());
 } finally {
 session.close();
 }
 }
 
 //更新操作
 @Test
 public void updateUser() {
 SqlSession session = sqlSessionFactory.openSession(true);
 try {
 User user = new User();
 user.setId("1");
 user.setAge("25");
 int num = session.update("com.mybatis.mapper.UserMapper.updateUser", user);
 System.out.println(num);
 } finally {
 session.close();
 }
 }
 
 //删除操作
 @Test
 public void deleteUser() {
 SqlSession session = sqlSessionFactory.openSession(true);
 try {
 int num = session.delete("com.mybatis.mapper.UserMapper.deleteUser", 1);
 System.out.println(num);
 } finally {
 session.close();
 }
 }
}
 

二、注解实现

1、编写Mapper接口

* 使用注解的方式配置SQL映射关系
* 需要注意的事此接口不用具体编写实现代码,而将由Mybatis动态的帮我们构建
* 这样的代码由于避免了强制类型转换和参数不匹配的问题,因此更加安全
*/
public interface UserMapperI {
 @Insert("insert into users values(#{id}, #{username}, #{password}, #{email}, #{age})")
 int insertUser(User user);
 
 @Select("select * from users where id = #{id}")
 User selectUser(String id);
 
 @Select("select * from users t where t.age = #{age}")
 List<User> selectUsers(String age);
 
 @Update("update users set age = #{age} where id = #{id}")
 int updateUser(User user);
 
 @Delete("delete from users where id = #{id}")
 int deleteUser(String id);
}
 

2、注册接口

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 "">
<configuration>
 <properties resource="database.properties"></properties>
 
 <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>
 <!-- 注册sql映射文件 -->
 
 <mappers>
 <!-- 注册UserMapper.xml文件 -->
 <mapper resource="com/mybatis/mapper/UserMapper.xml"/>
 <!-- 注册UserMapperI接口 -->
 <mapper class="com.mybatis.mapper.UserMapperI"/>
 </mappers>
</configuration>
 

3、单元测试代码

/**
* 使用注解实现CRUD操作
*/
public class DbTest3 {
 private SqlSessionFactory sqlSessionFactory;
 @Before
 public void init() throws IOException {
 //通过mybatis提供的资源加载类加载配置文件
 Reader reader = Resources.getResourceAsReader("Configuration.xml");
 //获取SqlSessionFactoryBuilder
 SqlSessionFactoryBuilder sqlSessionFactroyBuilder = new SqlSessionFactoryBuilder();
 //根据XML配置文件构建SqlSessionFactory
 SqlSessionFactory sqlSessionFactory = sqlSessionFactroyBuilder.build(reader);
 this.sqlSessionFactory = sqlSessionFactory;
 }
 
 //新增操作
 @Test
 public void insertUser() {
 SqlSession session = sqlSessionFactory.openSession(true);
 try {
 UserMapperI mapper = session.getMapper(UserMapperI.class);
 User user = new User();
 user.setId("1");
 user.setUsername("zhangsan");
 user.setPassword("123456");
 user.setAge("18");
 user.setEmail("zhangsan@163.com");
 int num = mapper.insertUser(user);
 System.out.println(num);
 } finally {
 session.close();
 }
 }
 
 //查询操作
 @Test
 public void queryUser() {
 SqlSession session = sqlSessionFactory.openSession(true);
 try {
 UserMapperI mapper = session.getMapper(UserMapperI.class);
 User user = mapper.selectUser("1");
 System.out.println(user);
 } finally {
 session.close();
 }
 }
 
 //查询多条操作
 @Test
 public void queryUsers() {
 SqlSession session = sqlSessionFactory.openSession(true);
 try {
 UserMapperI mapper = session.getMapper(UserMapperI.class);
 List<User> userList = mapper.selectUsers("18");
 System.out.println(userList.size());
 } finally {
 session.close();
 }
 }
 
 //更新操作
 @Test
 public void updateUser() {
 SqlSession session = sqlSessionFactory.openSession(true);
 try {
 UserMapperI mapper = session.getMapper(UserMapperI.class);
 User user = new User();
 user.setId("1");
 user.setAge("25");
 int num = mapper.updateUser(user);
 System.out.println(num);
 } finally {
 session.close();
 }
 }
 
 //删除操作
 @Test
 public void deleteUser() {
 SqlSession session = sqlSessionFactory.openSession(true);
 try {
 UserMapperI mapper = session.getMapper(UserMapperI.class);
 int num = mapper.deleteUser("1");
 System.out.println(num);
 } finally {
 session.close();
 }
 }
}

 

文章来源:智云一二三科技

文章标题:Mybatis入门(二)——增删改查

文章地址:https://www.zhihuclub.com/182906.shtml

关于作者: 智云科技

热门文章

网站地图