MyBatis

框架技术

是一个应用程序的半成品: 一个框架程序员可以配置的选择/选项越多,认为这款框架的可扩展性强。 面向SQL的一个框架  SQL程序员 入参自动装配 返回值自动装配提供可重用的公共结构   10个项目  基础架构  按一定规则组织的一组组件

组件(Component)是对数据和方法的简单封装封装了特定功能和属性的一个对象:我们封装过TextBox:(只能接受数字:)

框架的优势

不用再考虑公共问题 、专心在业务实现上、结构统一,易于学习、维护、新手也可写出好程序

 

01.持久化与ORM

ORM:Object Relational Mapping对象关系映射

编写程序的时候,程序员更倾向于以面向对象的思维方式处理数据   A.b.getName()

保存数据的时候,却以关系型数据库的方式存储  “cn.happy.Action”

(坑爹啊~~~~~~~)

持久化:持久化是程序数据在瞬时状态和持久状态间转换的过程

02.MyBatis简介

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation(基础) 迁移到了google code,并且改名为MyBatis 201311月迁移到Github

iBatis自动ORM映射框架,它需要在数据库里手动建表CURD操作时要自己写SQL语句,而Hibernate是全ORM映射框架,它只需要配置好文件,表会自动生成,CURDSQL语句也是自动生成的,这是他们的主要区别。

MyBatis小巧,简单易学

MyBatis是映射SQLHibernate是映射实体类的

中文文档

http://www.mybatis.org/mybatis-3/zh/index.html

03.MyBatis快速入门

 

1.下载jar

Jar包下载路径

http://repo1.maven.org/maven2/org/mybatis/mybatis/

2.附加jar

3.编写MyBatis配置文件 mybatis-config.xml(大配置文件)

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration
 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6     <environments default="development">
 7         <environment id="development">
 8             <transactionManager type="JDBC" />
 9             <dataSource type="POOLED">
10                 <property name="driver" value="oracle.jdbc.OracleDriver" />
11                 <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
12                 <property name="username" value="s2220" />
13                 <property name="password" value="ss" />
14             </dataSource>
15         </environment>
16     </environments>
17     <!--映射文件:描述某个实体和数据库表的对应关系 -->
18     <mappers>
19         <mapper resource="cn/happy/entity/Dept.xml" />
20     </mappers>
21 </configuration>

创建实体类

 1 public class User {
 2     // 用户id
 3     private int uid;
 4     // 用户名
 5     private String uname;
 6     //密码
 7     private  String upwd;
 8     //手机
 9     private  String phone;
10     public String getUpwd() {
11         return upwd;
12     }
13 
14     public void setUpwd(String upwd) {
15         this.upwd = upwd;
16     }
17 
18     public String getPhone() {
19         return phone;
20     }
21 
22     public void setPhone(String phone) {
23         this.phone = phone;
24     }
25 
26 
27     public int getUid() {
28         return uid;
29     }
30     public void setUid(int uid) {
31         this.uid = uid;
32     }
33     public String getUname() {
34         return uname;
35     }
36     public void setUname(String uname) {
37         this.uname = uname;
38     }
39 }
View Code

创建一个小配置文件 xml 形式

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE mapper
 3         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <mapper namespace="cn.wh.dao.IUserDao">
 6     <resultMap type="cn.wh.entity.User" id="MessageResult">
 7         <id column="uid" jdbcType="INTEGER" property="uid"/>
 8         <result column="uname" jdbcType="VARCHAR" property="uname" />
 9         <result column="upwd" jdbcType="VARCHAR" property="upwd" />
10          <result column="uphone" jdbcType="VARCHAR" property="phone" />
11     </resultMap>
12     <select id="findAll"  resultMap="MessageResult">
13           select * from user
14     </select>

编写测试类

 1     @Test//查询
 2     public  void  selectAll(){
 3     String path="mybatis-config.xml";
 4     SqlSession sqlSession=null;
 5     try {
 6         InputStream is= org.apache.ibatis.io.Resources.getResourceAsStream(path);
 7         SqlSessionFactoryBuilder sqlSessionFactoryl=new SqlSessionFactoryBuilder();
 8         SqlSessionFactory factory= sqlSessionFactoryl.build(is);
 9          sqlSession=factory.openSession();
10         List<User> list= sqlSession.selectList("findAll");
11         for (User item:list
12              ) {
13             System.out.println(item.getUname());
14         }
15 
16     } catch (IOException e) {
17         e.printStackTrace();
18     }finally {
19         sqlSession.close();
20     }
21 }

输出结果

原文地址:https://www.cnblogs.com/wh1520577322/p/9248830.html