3、Mybatis通过注解的形式实现增、删、改、查
2018-01-04 23:53
337 查看
上一节介绍了通过XML配置的形式实现增、删、该、查,本节介绍通过注解的形式实现增、删、该、查。还是以数据库中的users表为例
1、首先建立users表对应的bean
2、创建sql的映射接口UserMapper
3、定义Mybaits的配置文件conf.xml
4、创建测试类
由于增、删、改、查都需要先获取SqlSessionFactory,所以先定义一个公共类MybaitsUtil ,用于获取SqlSessionFactory对象。
创建测试类,测试增、删、该、查
工程目录
1、首先建立users表对应的bean
package com.lzj.mybaits.test1; public class User { private int id; private String name; private int age; public User() { super(); } public User(int id, String name, int age) { super(); this.id = id; this.name = name; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", age=" + age + "]"; } }
2、创建sql的映射接口UserMapper
package com.lzj.mybaits.test1; import java.util.List; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; public interface UserMapper { @Insert("insert into users(id, name, age) values(#{id}, #{name}, #{age})") public int insertUser(User user); @Delete("delete from users where id=#{id}") public int deleteUser(int id); @Update("update users set name=#{name},age=#{age} where id=#{id}") public int updUser(User user); @Select("select * from users where id=#{id}") public User getUserById(int id); @Select("select * from Users") public List<User> getAllUser(); }
3、定义Mybaits的配置文件conf.xml
<?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> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/lzj_database" /> <property name="username" value="root" /> <property name="password" value="lzjlzj" /> </dataSource> </environment> </environments> <mappers> <!--注意这个地方用的是class--> <mapper class="com.lzj.mybaits.test1.UserMapper"/> </mappers> </configuration>
4、创建测试类
由于增、删、改、查都需要先获取SqlSessionFactory,所以先定义一个公共类MybaitsUtil ,用于获取SqlSessionFactory对象。
package com.lzj.mybaits.util; import java.io.InputStream; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.lzj.mybaits.test1.MybaitsTest; public class MybaitsUtil { public static SqlSessionFactory getFactory(){ String resource = "conf.xml"; InputStream in = MybaitsTest.class.getClassLoader().getResourceAsStream(resource); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); return factory; } }
创建测试类,测试增、删、该、查
package com.lzj.mybaits.test1; import java.util.List; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import com.lzj.mybaits.util.MybaitsUtil; public class MybaitsTest { public static void main(String[] args) throws Exception { // testInsert(); // testUpd(); // testDelete(); // testSelectOne(); testSelectAll(); } public static void testInsert(){ SqlSessionFactory factory = MybaitsUtil.getFactory(); /*默认设置手动提交事务的*/ SqlSession session = factory.openSession(); UserMapper mapper = session.getMapper(UserMapper.class); int insertNum = mapper.insertUser(new User(4, "zhangsan", 21)); System.out.println("insertNum = " + insertNum); /*手动提交事务*/ /*如果此处不想手动提交数据,可以在factory.openSession(true),表示插入数据时自动提交事务*/ session.commit(); session.close(); } public static void testUpd(){ SqlSessionFactory factory = MybaitsUtil.getFactory(); /*自动提交事务*/ SqlSession session = factory.openSession(true); UserMapper mapper = session.getMapper(UserMapper.class); int updateNum = mapper.updUser(new User(4, "lisi", 20)); System.out.println("updateNum = " + updateNum); session.close(); } public static void testDelete(){ SqlSessionFactory factory = MybaitsUtil.getFactory(); /*自动提交事务*/ SqlSession session = factory.openSession(true); UserMapper mapper = session.getMapper(UserMapper.class); int deleteNum = mapper.deleteUser(4); System.out.println("deleteNum = " + deleteNum); session.close(); } public static void testSelectOne(){ SqlSessionFactory factory = MybaitsUtil.getFactory(); /*自动提交事务*/ SqlSession session = factory.openSession(true); UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.getUserById(3); System.out.println(user); session.close(); } public static void testSelectAll(){ SqlSessionFactory factory = MybaitsUtil.getFactory(); /*自动提交事务*/ SqlSession session = factory.openSession(true); UserMapper mapper = session.getMapper(UserMapper.class); List<User> list = mapper.getAllUser(); System.out.println(list); session.close(); } }
工程目录
相关文章推荐
- SpringBoot入门-17(springboot集成mybatis注解形式实现ID自动增长)
- mybatis3通过provider注解结合动态sql实现增删改查,不再依赖xml成为可能
- Mybatis实现in查询(注解形式和xml形式)
- SpringBoot入门-19(springboot集成mybatis注解形式增删查改properties配置,利用《script》实现动态SQL)
- Mybatis注解-通过注解方式实现CRUD
- Mybatis通过注解方式实现批量插入数据库 及 常见的坑
- Mybatis通过注解方式实现批量插入数据库
- SpringBoot入门-20(springboot集成mybatis注解形式properties配置,利用@Provider实现动态SQL)
- SpringBoot入门-21(springboot集成mybatis注解形式增删查改properties配置,利用@Provider实现动态SQL)
- 通过Pojo对象 field 属性加注解实现格式校验,极大的降低代码量
- 通过注解方式配置Spring实现Ioc
- mybatis 用注解实现 in 查询
- 详解ssh通过公钥密码、免密码登录以及导入公钥文件三种形式实现远程登录
- mybatis利用注解实现增删改查
- Tomcat下通过CXF实现不用注解发布WebService
- 基于全注解方式实现MyBatis链接数据库的demo
- java bean通过注解实现校验
- mybatis04(注解实现一对一动态sql 的增删改查)
- mybatis实现对象参数注解和注解参数周时传入
- (转找了好久)实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上