Mybatis编写初始化Dao代码
第一步:创建User实体类(POJO)
package com.xu.pojo;import java.util.Date;/*** * @author 徐亮亮* Title: User* Description: POJO* Project: mybatis1* Package: com.xu.pojo* @date 2018年3月2日 下午11:27:29* @version 1.0*/ public class User {// 属性名和数据库表的字段对应private int id;private String username;// 用户姓名private String sex;// 性别private Date birthday;// 生日private String address;// 地址public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;} }
第二步:创建UserDao接口(进行数据库的增删改查操作,方便其他类继承访问)
package com.xu.dao;import com.xu.pojo.User; /*** * @author 徐亮亮* Title: UserDao* Description: UserDao(功能:用来封装实体类与数据库的访问)* Project: mybatis1* Package: com.xu.dao* @date 2018年3月5日 上午12:52:11* @version 1.0*/ public interface UserDao {//根据id查询用户信息public User findUserById(int id) throws Exception;//添加用户信息public void addUser(User user) throws Exception;//删除用户信息public void deleteUSer(int id) throws Exception; }
第三步:创建UserDaoImpl实现接口类
package com.xu.dao;import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory;import com.xu.pojo.User; /*** * @author 徐亮亮* Title: UserDaoImpl* Description: 接口的实现类* Project: mybatis1* Package: com.xu.dao* @date 2018年3月5日 上午1:31:35* @version 1.0*/ public class UserDaoImpl implements UserDao {private SqlSessionFactory sqlSessionFactory;//通过构造方法创建SqlSessionFactory会话工厂public UserDaoImpl(SqlSessionFactory sqlSessionFactory) {this.sqlSessionFactory = sqlSessionFactory;}/*** id 查询用户信息*/@Overridepublic User findUserById(int id) throws Exception {//通过sqlSessionFactory会话工厂创建SqlSession会话SqlSession sqlSession = sqlSessionFactory.openSession();//进行数据库的查询操作User user = sqlSession.selectOne("test.findUserById", id);//关闭SqlSession会话 sqlSession.close();return user;}/*** 添加用户信息*/@Overridepublic void addUser(User user) throws Exception {SqlSession sqlSession = sqlSessionFactory.openSession();sqlSession.insert("test.addUser", user);//开启事务 sqlSession.commit();sqlSession.close();}/*** 删除用户信息*/@Overridepublic void deleteUSer(int id) throws Exception {SqlSession sqlSession = sqlSessionFactory.openSession();sqlSession.delete("test.deleteUser", id);sqlSession.commit();sqlSession.close();}}
第四步:测试代码
package com.xu.dao;import java.io.InputStream;import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Before; import org.junit.Test;import com.xu.pojo.User;public class UserDaoImplTest {private SqlSessionFactory sqlSessionFactory;@Beforepublic void setUp() throws Exception {//取得全局配置文件名称String resource = "SqlMapConfig.xml";//得到配置文件流InputStream inputStream = Resources.getResourceAsStream(resource);//创建会话工厂sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);}@Testpublic void testFindUserById() throws Exception {//实例化UserDao接口UserDao userDao = new UserDaoImpl(sqlSessionFactory);User user = userDao.findUserById(1);System.out.println(user.getUsername()+","+user.getSex());}@Testpublic void testAddUser() throws Exception {UserDao userDao = new UserDaoImpl(sqlSessionFactory);User user = new User();user.setUsername("孙琪");user.setSex("男");userDao.addUser(user);}@Testpublic void testDeleteUSer() throws Exception {UserDao userDao = new UserDaoImpl(sqlSessionFactory);userDao.deleteUSer(33);}}
总结:Mybatis框架的主要功能是支持数据的持久化,所以在web开发过程中主要应用与Dao的开发,Dao的功能是封装实体类与数据库的访问过程,则以上代码就是一个很实用的初始化代码。
本人也是刚刚开始学习Mybatis框架,若有遗漏或理解错误的地方请各位大神评论多多指教。
转载于:https://www.cnblogs.com/x-ll123/p/8507048.html
Mybatis编写初始化Dao代码相关推荐
- SpringBoot如何自动生成实体类和Dao层以及映射文件(mybatis generator 自动生成代码)
一.首先添加自动生成代码插件 <!-- mybatis generator 自动生成代码插件 生成时解除注释 --><plugin><groupId>org.myb ...
- 1.Dao代码如何编写?
Dao代码如何编写? 1.操作xml数据.数据保存在xml文件里. 2.使用jdbc技术. 2.1.原始的jdbc操作,connection,statement,resultset. 2.2.自定义一 ...
- 阿里面试题:Mybatis中的Dao接口和XML文件里的SQL是如何建立关系的?
一.解析XML 首先,Mybatis在初始化SqlSessionFactoryBean的时候,找到mapperLocations路径去解析里面所有的XML文件,这里我们重点关注两部分. 1.创建Sql ...
- SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件
我们这一一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池的好处我 ...
- if mybatis tk 多个_面试题:mybatis 中的 DAO 接口和 XML 文件里的 SQL 是如何建立关系的?...
前言 这是 mybatis 比较常问到的面试题,我自己在以前的面试过程中被问到了2次,2次都是非常重要的面试环节,因此自己印象很深刻. 这个题目我很早就深入学习了,但是一直没有整理出来,刚好最近一段时 ...
- (转)MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码
http://blog.csdn.net/yerenyuan_pku/article/details/71909325 什么是逆向工程 MyBatis的一个主要的特点就是需要程序员自己编写sql,那么 ...
- 编写可读代码,提高工作效率
本次分享是怎么做到"可读性"的 首先,正在进行的,说明下本文的可读性. 1.背景 根据今年形势996icu,加班加点的情况比较多.与其抱怨,不如改变. 从内因去改变:主题,编写可读 ...
- 第一个Mybatis程序配置(代码)
2.第一个Mybatis程序 思路:搭建环境–>导入Mybatis–>编写代码–>测试! 2.1.搭建环境 搭建数据库 新建项目: 创建一个普通的Maven项目 删除src目录 导入 ...
- Mybatis中自动生成代码(利用mybatis-generator-core-1.3.2)
Mybatis中自动生成代码(利用mybatis-generator-core-1.3.2) 引言: 在使用mybatis开发的过程中,通常我们会给数据库的每张表编写对应的po.mapper.mapp ...
最新文章
- Developer Express 之 XtraReport如何显示设计窗体,打开已设计过的报表
- Oracle定时任务执行存储过程备份日志记录表
- mysql去掉秒杀场景_秒杀场景下mysql减库存逻辑优化
- openmv集成应用_使用OpenMV引导无人机飞行
- .NET 5 尝鲜 - 开源项目TerminalMACS WPF管理端支持.NET 5
- Python zip函数 - Python零基础入门教程
- 邬贺铨/余晓晖/田溯宁…千家从业者,数十位行业大咖共同烹制了一场怎样的AIoT“盛宴”?
- python小球弹弹弹_python实现弹跳小球
- 年薪50W测试大牛,分享测试开发基础知识
- LeetCode:旋转链表【61】
- Unity 常用API以及C# 工具类的使用
- linux下修改mysql数据存储_Linux下修改MySQL数据存放目录方法及可能遇到的问题--转...
- win 7 双击themepack主题包没反应的完美解决方法!
- CF19E Fairy (奇偶环,树上差分)
- 华硕飞行堡垒键盘背光灯无法显示怎么办?
- Vue组件-卡片动画倒计时
- WordPress重要文件wp-seting.php文件详解
- 部署项目至青云服务器简易流程
- 使用PN532向小米手环写入加密卡(复制门禁卡)
- 孙子兵法——【12】(百家讲坛观后记录)
热门文章
- 【深度优先搜索】计蒜客:中国象棋
- LeetCode 73. 矩阵置零(两个标记变量)
- 基于运动特征的视频质量评价方法(基于H.264)
- wgan 不理解 损失函数_GAN:「太难的部分我就不生成了,在下告退」
- doxygen 无法生成图片_设计稿智能生成代码如何识别组件?Imgcook 3.0 解析
- 计算机网络八校联考试题,2019届高三信息技术3月联考试卷有解析与答案
- php怎么限制文章标题的字数,文章标题在WordPress中显示的长度即字数如何限制呢?...
- android edittext不可复制_Android 禁止输入框 EditText 复制粘贴
- 计算机类专业综合理论模拟试卷4,计算机类专业理论综合考试试题
- poj2528 区间覆盖