Mybatis简单的操作数据库
来源:互联网 发布:华为揽阅m2青春版改mac 编辑:程序博客网 时间:2024/05/21 13:40
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.Driverjdbc.url=jdbc:mysql://localhost:3306/db0602jdbc.username=rootjdbc.password=123456env_choosen=deve
4.定义实体类
实体类的属性和表的字段名称一一对应
数据库表:
实体类:
5.定义操作实体类表的接口xxxMapper
定义操作数据库的方法
- 增加(两种添加方法)
void insertStu(Student student);
void insertStudent(@Param("sname") String name);
- 删除(根据id删除)
void delStu(@Param("sid") 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的简单数据库操作
- Mybatis简单的操作数据库
- MyBatis 的数据库操作
- MyBatis对数据库的增删改查操作,简单示例
- MyBatis对数据库的增删改查操作,简单示例
- Mybatis简单实现数据库持久操作
- mybatis自带常用操作数据库方法详解以及如何搭建简单的mybatis环境
- javase mybatis的操作数据库
- mybatis的oracle数据库操作
- Mybatis操作数据库的方式
- 简单的数据库操作:
- 简单的数据库操作
- 简单的数据库操作
- 数据库的简单操作
- 数据库的简单操作
- 数据库的简单操作
- 数据库的简单操作
- 数据库的简单操作
- 从零开始前端学习[33]:Cs3中的transition过渡-animation动画
- HDU
- bootstrap table样式丢失
- Mac系统 QuickTime 屏幕录制
- Junit4
- Mybatis简单的操作数据库
- cmd下ftp传送文件显示553Permission denied.
- A Cubic number and A Cubic Number
- 线程的概念
- 并查集应用总结 内置例题
- 学习Linux C编程 strlen及unsigned问题
- Maven讲解之 仓库
- python爬虫网页解析中的疑难杂症...
- Chinese Zodiac