Mybatis简单的操作数据库
2017-10-14 11:54
302 查看
Mybatis
最简单的用Mybatis实现对数据库表的增删改查,内容详细,初学者可以快速实现功能.Mybatis介绍
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。Mybatis特点
简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。
解除sql与程序代码的耦合:通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
提供映射标签,支持对象与数据库的orm字段关系映射
提供对象关系映射标签,支持对象关系组建维护
提供xml标签,支持编写动态sql
Mybatis配置过程
1.添加必要的jar包
添加到pom.xml
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.2</version> </dependency>
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.40</version> </dependency>
添加到pom.xml的<build>标签中
<resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> <include>**/*.tld</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> <include>**/*.tld</include> </includes> <filtering>false</filtering> </resource> </resources>
2.添加config.xml
添加到resource文件夹下
这个配置文件中,所有的标签都有严格的顺序
<environments default="${env_choosen}"> <environment id="deve"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments>
自动读取mapper包下的所有xml文件
<mappers> <mapper resource="com/lanou/mapper/StudentMapper.xml"/> <package name="com.lanou.mapper"/>
3.与config.xml对应的db.properties
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/db0602 jdbc.username=root jdbc.password=123456 env_choosen=deve
4.定义实体类
实体类的属性和表的字段名称一一对应数据库表:
实体类:
5.定义操作实体类表的接口xxxMapper
定义操作数据库的方法
增加(两种添加方法)
void insertStu(Student student);
void insertStudent(@Param("sname") String name);
删除(根据id删除)
void delStu(@Param("sid" 4000 ) Integer id);
更改
void updateStu(Student student);
查询
查询所有
List<Student>findAllStudent();
按id查询
java List<Student>findById(@Param("id") Integer id);
6.定义操作表的sql映射文件XXXMapper.xml
SQL语句写在mapper标签中(namespace 一般写对应接口的路径)
<mapper namespace="com.lanou.mapper.StudentMapper">
MyBatis的结果映射
当实体类的属性名和数据库表的列名不一致的情况下,
需要使用结果映射来确保数据的一致性
column:数据库表的列名
property:实体类的属性名
java <resultMap id="BaseMap" type="com.lanou.bean.Student"> <id column="id" property="id"/> <result column="name" property="name"/> </resultMap>
增加(两种添加方法)
<insert id="insertStu" parameterType="com.lanou.bean.Student"> INSERT INTO student VALUES (NULL ,#{name}) </insert>
<insert id="insertStudent"> INSERT INTO student VALUES (NULL ,#{sname}) </insert>
删除(根据id删除)
<delete id="delStu" parameterType="com.lanou.bean.Student"> DELETE FROM student WHERE id =(#{sid}) </delete>
更改
<update id="updateStu"> UPDATE student SET name=#{name} WHERE id=#{sid}; </update>
查询
查询所有
<select id="findAllStudent" resultMap="BaseMap"> SELECT <include refid="Column_List"/> FROM student; </select>
按id查询
java <select id="findById" resultMap="BaseMap"> SELECT * FROM student WHERE id = #{id} </select>
7.创建test类测试代码
从 XML 中构建 SqlSessionFactory
加载config文件
String re = "config.xml"; InputStream stream = Resources.getResourceAsStream(re);
创建SqlSessionFactory
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(stream);
生产sqlSession对象
SqlSession session = factory.openSession();
获取mapper对象
xxxMapper mapper = session.getMapper(xxxMapper.class);
调用方法获取结果
增加
Student stu = new Student(); stu.setName("zhaoliu"); mapper.insertStu(stu); session.commit(); session.close();
mapper.insertStudent("wangwu"); session.commit(); session.close();
删除
mapper.delStu(1); session.commit(); session.close();
更改
mapper.updateStu(stu); session.commit(); session.close();
查询
查询所有
List<Student> studentList = mapper.findAllStudent(); System.out.println(studentList);
按id查询
List<Student> studentList = mapper.findById(1); System.out.println(studentList);
8.总结
最后的结构视图
通过以上操作可以简单实现对数据库表的增删改查.
相关文章推荐
- MyBatis学习笔记-01.MyBatis简单入门_实现MyBatis对数据库的查询操作以及IllegalArgumentException异常问题
- (1).Mybatis简单入门:对数据库进行CRUD操作
- Mybatis的简单数据库操作
- MyBatis对数据库的增删改查操作,简单示例
- MyBatis对数据库的增删改查操作,简单演示样例
- MyBatis配置与操作数据库的简单操作
- mybatis自带常用操作数据库方法详解以及如何搭建简单的mybatis环境
- RUBY实践—数据库简单操作
- PHP简单数据库操作类实例【支持增删改查及链式操作】
- 分层中数据库的简单操作?
- 编写数据库操作类,使ASP.NET中的数据库操作变得简单
- 数据库的简单操作-学习记录
- msyql数据库简单操作及事务和索引
- iOS基础教程-SQLite数据库操作(二简单实例学生信息增删改查数据库操作)
- java JDBC连接过程与简单数据库操作
- JPA + SpringData 操作数据库原来可以这么简单 ---- 深入了解 JPA - 3
- nodejs简单应用四(数据库mysql操作)
- 数据库简单操作—注册和登录实例
- 关于MyBatis在eclipse中的配置及简单的增删改查操作
- 简单的考生管理系统,java以XML为数据库,jaxp操作XML实现简单的增删查功能