Mybatis简单入门<学习随笔>
来源:互联网 发布:5x兴趣社区淘宝商店 编辑:程序博客网 时间:2024/06/05 19:24
在实际项目中,我一直在用Hibernate持久层的开发,但是由于Hibernate的紧密封装,虽然ORM使得对数据库的操作非常简单和方便,但是有时候碰到的各种关联关系,又显得比较呆板不灵活。
MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。
用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源
我们先看看mybatis的主要配置文件Configuration.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="UNPOOLED"><!--数据库连接内容 --> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql:///mybatis"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <!--实体类相关操作配置文件 --> <mapper resource="orm/Student.xml"/> </mappers></configuration>有过持久层框架开发的 一看就明白 废话少说 直接进入demo
实体类Student
/** * * 这是一个学生类 * */public class Student { private Integer id;//代理主键 private String name;//姓名 private Integer age;//年龄public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(int age) {this.age = age;} }
与实体类相对应的配置文件Student.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="Student"> <!--resultMap用来映射表与类之间的字段关系 id标签代表主键列 column代表表里的字段 property是对应类里面的属性 --> <resultMap type="orm.Student" id="Student"> <id column="ID" jdbcType="INTEGER" property="id"/> <result column="NAME" jdbcType="VARCHAR" property="name"/> <result column="AGE" jdbcType="INTEGER" property="age"/> </resultMap> <!--查询 resultMap是上面配置的resultMap的id<span style="font-family: arial, 宋体, sans-serif; text-indent: 2em;">名字用来映射实体类,查询出的结果直接封装 --></span> <select id="selectID" parameterType="int" resultMap="Student"> <!-- parameterType 是传入到值类型 java代码中传入int型 配置文件接收时候固定值_parameter 详查mybatis ONGL--> select ID,NAME,AGE from Student where ID=#{_parameter} </select> <insert id="save" parameterType="orm.Student"> <!-- 传入值类型为实体类,配置文件接收直接#{实体类对应属性} 详查mybatis ONGL--> insert into Student(NAME,AGE) values(#{name},#{age}) </insert> <delete id="deleteID" parameterType="int"> delete from Student where ID = #{_parameter} </delete></mapper>测试类Test.java
package test;import java.io.IOException;import java.io.Reader;import java.util.List;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import orm.Student;public class Test { public static void main(String[] args) throws IOException { // 通过配置文件获取数据库连接信息 Reader reader = Resources.getResourceAsReader("Configuration.xml"); // 通过配置信息构建一个SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); // 通过sqlSessionFactory打开一个数据库会话 SqlSession sqlSession = sqlSessionFactory.openSession(); /** * 保存数据 */// Student student = new Student();// student.setAge(12);// student.setName("张三");// insert 第一个参数 是Student.xml 配置文件中namespace . <insert/>标签中的id 第二个参数代表传入的值// sqlSession.insert("Student.save",student);// sqlSession.commit();//提交事务 /** * 查询 */// List<Student> list=sqlSession.selectList("Student.selectID", 1);// for(Student s:list){// System.out.println(s.getName()+"====="+s.getAge());// } /** * 删除 */// sqlSession.delete("Student.deleteID", 1);// sqlSession.commit();}}具体操作就在代码中的注释,如有疑问可以与我讨论。
以上都是自己学习时候的总结,难免会有错误,如有指出,将不胜感激。
主要jar mybatis-3.2.7.jar
0 0
- Mybatis简单入门<学习随笔>
- SpringMVC简单入门(注解)<学习随笔>
- Mybatis 入门学习,简单例子
- 【MyBatis学习01】一个简单入门实例
- IOS入门学习随笔
- QT入门学习随笔
- Java:MyBatis简单入门
- myBatis简单入门
- Mybatis简单入门
- 一、MyBatis简单入门
- Mybatis简单入门
- Mybatis简单入门
- mybatis简单入门
- MyBatis简单入门使用
- MyBatis简单入门使用
- MyBatis框架简单入门
- mybatis简单入门实例
- opengl 入门学习 随笔五
- PCB的布局原则
- android4.4以上,实现状态栏颜色设置
- js:有关TypeError: invalid 'in' operand obj的错误
- 福昕阅读器快速删除书签的方法
- Hadoop学习笔记(二)浅谈Hadoop守护进程
- Mybatis简单入门<学习随笔>
- SecureCRT配置
- 程序3——二叉树的前中后层序遍历
- 根据文件相对路径获得文件的绝对路径(windows)
- 被忽略却很有用的html标签
- java 集合类
- 关于使用Python3进行网络爬虫的字符问题
- Vim技巧
- 《计算机操作系统》总结三(内存管理)