博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis简介
阅读量:3942 次
发布时间:2019-05-24

本文共 3259 字,大约阅读时间需要 10 分钟。

mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并返回。采用 ORM 思想解决了实体和数据库映射的问题,对 jdbc 进行了封装,屏蔽了 jdbc api 底层访问细节,使我们不用与 jdbc api 打交道,就可以完成对数据库的持久化操作。

以下是使用示例

public class User implements Serializable {
//getter和setter省略 private Integer id; private String username; private Date birthday; private String sex; private String address; }
public interface IUserDao {
/** * 查询所有用户 * @return */ public List
findAll(); /** * 根据id查询用户 * @param id * @return */ public User findById(Integer id); /** * 保存用户 * @param user */ public void saveUser(User user); /** * 更新用户 * @param user */ public void update(User user); /** * 删除用户 * @param id */ public void delete(Integer id); /** * 返回记录总数 * @return */ public int findTotal();}

测试类

public class TestUserDAO {
private InputStream in; private SqlSession sqlSession; private IUserDao userDao; @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的代理对象 userDao = sqlSession.getMapper(IUserDao.class); } @After//用于在测试方法执行之后执行 public void destroy()throws Exception{
//提交事务 sqlSession.commit(); //6.释放资源 sqlSession.close(); in.close(); } /** *测试findAll()方法 */ @Test public void findAllTest(){
List
userList = userDao.findAll(); for (User user:userList ) {
System.out.println(user.toString()); } } /** * 测试findByIdTest()方法 */ @Test public void findByIdTest(){
User user = userDao.findById(49); System.out.println(user); } @Test public void saveUser(){
User user = new User(); user.setAddress("青岛"); user.setSex("男"); user.setBirthday(new Date()); user.setUsername("SaveTestUser"); System.out.println("之前的"+user); ![结果](https://img-blog.csdnimg.cn/20200210122843325.png) userDao.saveUser(user); System.out.println("之后的"+user); ![运行结果](https://img-blog.csdnimg.cn/2020021012291184.png) } @Test public void upstate(){
User user = userDao.findById(49); System.out.println("保存之前" + user); user.setUsername("upstateTest"); userDao.update(user); User u = userDao.findById(49); System.out.println(u); } @Test public void bugTest(){
User user = userDao.findById(60); System.out.println(user);//返回为空 ![运行结果](https://img-blog.csdnimg.cn/20200210122952193.png) } @Test public void deleteTest(){
userDao.delete(51); } @Test public void findTotalTest(){
System.out.println(userDao.findTotal()); }}

到此基本的CRUD功能以基本实现

转载地址:http://jciwi.baihongyu.com/

你可能感兴趣的文章
扩展Spring Security-用户密码自定义加密的快速实现
查看>>
Log4j异步日志简明配制
查看>>
扩展Spring Security-国际化终极配制
查看>>
在Mac OS系统下得Linux虚拟机中安装Confluence3
查看>>
在Eclipse中调试Jetty应用的配置(XML配置文件方式)
查看>>
Ext-3.1.0下组件中按钮居中问题的记要
查看>>
MacOS下使用screen命令运行后台程序
查看>>
东北人的幽默,《红男绿女》中经典对白,看过的人都明白
查看>>
印象后海
查看>>
看了这54句,你就看懂了人性
查看>>
PowerDesigner数据模型设计拾遗
查看>>
从Spring MVC扩展中学习OO设计(一)
查看>>
八招赚钱方法
查看>>
70个面试技巧,很实用哦
查看>>
Communication - The cardigans
查看>>
晒书名:已收藏O'Reilly出版社‘动物世界’系列图书(一)
查看>>
晒书名:已收藏O'Reilly出版社‘动物世界’系列图书(二)
查看>>
从银行WebService报文接口系统中,学习敏捷设计
查看>>
区分IE和Firefox浏览器的CSS样式写法
查看>>
2009语录
查看>>