Mybatis入门例子

更新时间:2023-05-12 02:30:27 阅读: 评论:0

Mybatis⼊门例⼦
MyBatis 本是apache的⼀个开源项⽬iBatis, 2010年这个项⽬由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11⽉迁移到Github。
⼀、理解什么是MyBatis?
MyBatis 是⽀持普通 SQL 查询,存储过程和⾼级映射的优秀持久层框架。 MyBatis 消除了⼏乎所有的 JDBC 代码和参数的⼿⼯设置以及对结果集的检索。 MyBatis 可以使⽤简单的XML 或注解⽤于配置和原始映射,将接⼝和 Java 的 POJO( Plain Old Java Objects,普通的Java 对象)映射成数据库中的记录.
1)MyBATIS ⽬前提供了三种语⾔实现的版本,包括:Java、以及Ruby。(我主要学习java,就讲java的使⽤)
2)它提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。
3)mybatis与hibernate的对⽐?
mybatis提供⼀种“半⾃动化”的ORM实现。
这⾥的“半⾃动化”,是相对Hibernate等提供了全⾯的数据库封装机制的“全⾃动化”ORM实现⽽⾔,“全⾃动”ORM实现了POJO和数据库表之间的映射,以及 SQL 的⾃动⽣成和执⾏。
⽽mybatis的着⼒点,则在于POJO与SQL之间的映射关系。
⼆、简单例⼦(快速⼊门)
1)⾸先建⽴项⽬java web
2)导⼊mybatis所需的jar包
mybatis需要jar包:mybatis-3.3.0.jar
mysql驱动jar包:mysql-connector-java-5.1.15.-bin.jar
⽇志记录jar包:log4j.jar
3)创建数据库数据(mysql)
4)mysql驱动配置⽂件(这样可以优化性能)
我个⼈喜欢把所需要使⽤到的包先建⽴好。配置⽂件先创建好。
5)添加mybatis配置⽂件l
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE configuration PUBLIC "-////DTD Config 3.0//EN" "/dtd/mybatis-3-config.dtd">
3 <configuration>
4
5  <!-- 引⼊外部配置⽂件 -->
6  <properties resource="mysql.properties"></properties>
7
8    <!-- 配置mybatis运⾏环境 -->
9      <environments default="cybatis">
10        <environment id="cybatis">
11            <!-- type="JDBC" 代表使⽤JDBC的提交和回滚来管理事务 -->
12            <transactionManager type="JDBC" />
13
14            <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
15            <!-- POOLED 表⽰⽀持JDBC数据源连接池 -->
16            <!-- UNPOOLED 表⽰不⽀持数据源连接池 -->
17            <!-- JNDI 表⽰⽀持外部数据源连接池 -->
18            <dataSource type="POOLED">
19                <property name="driver" value="${jdbc.driver}" />
20                <property name="url" value="${jdbc.url}" />
21                <property name="urname" value="${jdbc.urname}" />
22                <property name="password" value="${jdbc.password}" />
23            </dataSource>
24        </environment>
25    </environments>
26
27 </configuration>
6)创建对应的实体对象
对应的java代码:
1 batis.beans;
2
3 import java.io.Serializable;
4
5 public class UrBean implements Serializable{
6
7    private static final long rialVersionUID = 1L;
8    private Integer id;
9    private String urname;
10    private String password;
11    private Double account;
12
13    public UrBean() {
14        super();
15    }
16
17    public UrBean(String urname, String password, Double account) {
18        super();
19        this.urname = urname;
20        this.password = password;
21        this.account = account;
22    }
23
24    public UrBean(Integer id, String urname, String password, Double account) {
25        super();
26        this.id = id;
27        this.urname = urname;
28        this.password = password;
29        this.account = account;
30    }
31
32    public Integer getId() {
33        return id;
34    }
35
36    public void tId(Integer id) {
37        this.id = id;
38    }
39
40    public String getUrname() {
41        return urname;
42    }
43
44    public void tUrname(String urname) {
45        this.urname = urname;
46    }
47
48    public String getPassword() {
49        return password;
50    }
51
52    public void tPassword(String password) {
53        this.password = password;
54    }
55
56    public Double getAccount() {
57        return account;
58    }
59
60    public void tAccount(Double account) {
61        this.account = account;
62    }
63
64    @Override
65    public String toString() {
66        return "UrBean [id=" + id + ", urname=" + urname + ", password="
67                + password + ", account=" + account + "]";
68    }
69
70
71
72
73 }
7)创建⽅法接⼝UrMapper.java和定义操作t_ur表的sql映射⽂件l 提供简单的增删改查数据信息。
1 batis.mapper;
2
3 import java.util.List;
4
5 batis.beans.UrBean;
6
7 public interface UrMapper {
8    /**
9      * 新增⽤⼾
10      * @param ur
11      * @return
12      * @throws Exception
13      */
14    public int inrtUr(UrBean ur) throws Exception;
15    /**
16      * 修改⽤⼾
17      * @param ur
18      * @param id
19      * @return
20      * @throws Exception
21      */
22    public int updateUr (UrBean ur,int id) throws Exception;
23      /**
24      * 刪除⽤⼾
25      * @param id
26      * @return
27      * @throws Exception
28      */
29    public int deleteUr(int id) throws Exception;
30    /**
31      * 根据id查询⽤户信息
32      * @param id
33      * @return
34      * @throws Exception
35      */
36    public UrBean lectUrById(int id) throws Exception;
37      /**
38      * 查询所有的⽤户信息
39      * @return
40      * @throws Exception
41      */
42    public List<UrBean> lectAllUr() throws Exception;
43 }
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE mapper PUBLIC "-///DTD Mapper 3.0" "/dtd/mybatis-3-mapper.dtd">
3 <mapper namespace="batis.mapper.UrMapper">
4 <!-- ⾃定义返回结果集 -->
5    <resultMap id="urMap" type="UrBean">
6        <id property="id" column="id" javaType="java.lang.Integer"></id>
7        <result property="urname" column="urname" javaType="java.lang.String"></result>
8        <result property="password" column="password" javaType="java.lang.String"></result>
9        <result property="account" column="account" javaType="java.lang.Double"></result>
10    </resultMap>
11 <!-- 在各种标签中的id属性必须和接⼝中的⽅法名相同, id属性值必须是唯⼀的,不能够重复使⽤。parameterType属性指明查询时使⽤的参数类型,resultType属性指明查询返回的结果集类型-->
12 <!-- uGeneratedKeys:(仅对 inrt 有⽤)这会告诉 MyBatis 使⽤ JDBC 的getGeneratedKeys
13            ⽅法来取出由数据(⽐如:像 MySQL 和 SQLServer 这样的数据库管理系统的⾃动递增字段)内部⽣成的主键。默认值: fal。 -->
14 <!--keyProperty:(仅对 inrt有⽤)标记⼀个属性, MyBatis 会通过 getGeneratedKeys或者通过 inrt 语句的 lectKey ⼦元素设置它的值。默认:不设置。 -->
15 <!--#{}中的内容,为占位符,当参数为某个JavaBean时,表⽰放置该Bean对象的属性值  -->
16
17
18    <inrt id="inrtUr" uGeneratedKeys="true" keyProperty="id">
19        inrt into t_ur (urname,password,account) values (#{urname},#{password},#{account})
20    </inrt>
21
22    <update id="updateUr" >
23      update t_ur t urname=#{urname},password=#{password},account=#{account} where id=#{id}
24    </update>
25
26    <delete id="deleteUr" parameterType="int">
27      delete from t_ur where id=#{id}
28    </delete>
29
30    <lect id="lectUrById" parameterType="int" resultMap="urMap">
31      lect * from t_ur where id=#{id}
32    </lect>
33
34    <lect id="lectAllUr" resultMap="urMap">
35      lect * from t_ur
36    </lect>
37
38
39 </mapper>
这时需要为l⾥注册l⽂件。
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE configuration PUBLIC "-////DTD Config 3.0//EN" "/dtd/mybatis-3-config.dtd">
3 <configuration>
4
5  <!-- 引⼊外部配置⽂件 -->
6  <properties resource="mysql.properties"></properties>
7
8
9    <!-- 为JAVA Bean起类别名 -->
10    <typeAlias >
11        <!-- 别名⽅式1,⼀个⼀个的配置 type中放置的是类的全路径,alias中放置的是类别名
12        <typeAlia type="batis.beans.UrBean" alias="UrBean"/> -->
13        <!-- 别名⽅式2,⾃动扫描,将JAVA类的类名作为类的类别名 -->
14        <package name="batis.beans"/>
15    </typeAlias>
16
17
18    <!-- 配置mybatis运⾏环境 -->
19      <environments default="cybatis">
20        <environment id="cybatis">
21            <!-- type="JDBC" 代表使⽤JDBC的提交和回滚来管理事务 -->
22            <transactionManager type="JDBC" />
23
24            <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
25            <!-- POOLED 表⽰⽀持JDBC数据源连接池 -->
26            <!-- UNPOOLED 表⽰不⽀持数据源连接池 -->
27            <!-- JNDI 表⽰⽀持外部数据源连接池 -->
28            <dataSource type="POOLED">
29                <property name="driver" value="${jdbc.driver}" />
30                <property name="url" value="${jdbc.url}" />
31                <property name="urname" value="${jdbc.urname}" />
32                <property name="password" value="${jdbc.password}" />
33            </dataSource>
34        </environment>
35    </environments>
36
37
38    <mappers>
39        <!-- 告知映射⽂件⽅式1,⼀个⼀个的配置
40        <mapper resource="com/cy/mybatis/l"/>-->
41        <!-- 告知映射⽂件⽅式2,⾃动扫描包内的Mapper接⼝与配置⽂件 -->
42        <package name="com/cy/mybatis/mapper"/>
43    </mappers>
44 </configuration>
8)需要建⽴⼀个⼯具类⽂件
1 ls;
2
3 import java.io.Reader;
4
5 import org.apache.ibatis.io.Resources;
6 import org.apache.ibatis.ssion.SqlSession;
7 import org.apache.ibatis.ssion.SqlSessionFactory;
8 import org.apache.ibatis.ssion.SqlSessionFactoryBuilder;
9
10 public class DBTools {
11    public static SqlSessionFactory ssionFactory;
12
13    static{
14        try {
15            //使⽤MyBatis提供的Resources类加载mybatis的配置⽂件
16            Reader reader = ResourceAsReader("l");
17            //构建sqlSession的⼯⼚
18            ssionFactory = new SqlSessionFactoryBuilder().build(reader);
19        } catch (Exception e) {
20            e.printStackTrace();
21        }
22
23    }
24    //创建能执⾏映射⽂件中sql的sqlSession
25    public static SqlSession getSession(){
26        return ssionFactory.openSession();
27    }
28
29 }
9)写个测试
1 batis.rvice;
2
3 import java.util.List;
4
5 import org.apache.ibatis.ssion.SqlSession;
6
7 batis.beans.UrBean;
8 ls.DBTools;
9 batis.mapper.UrMapper;
10
11 public class UrService {
12
13
14 15
16    public static void main(String[] args) {
17          inrtUr();
18 //        deleteUr();
19 //        lectUrById();
20 //        lectAllUr();
21    }
22
23
24    /**
25      * 新增⽤户
26      */
27    private static void inrtUr() {
28        SqlSession ssion = Session();
29        UrMapper mapper = Mapper(UrMapper.class);
30        UrBean ur = new UrBean("懿", "1314520", 7000.0);
31        try {
32            mapper.inrtUr(ur);
33            System.out.String());
34              it();
35        } catch (Exception e) {
36            e.printStackTrace();
37            llback();
38        }
39    }
40
41
42    /**
43      * 删除⽤户
44      */
45    private static void deleteUr(){
46        SqlSession Session();
47        UrMapper Mapper(UrMapper.class);
48        try {
49            mapper.deleteUr(1);
50            it();
51        } catch (Exception e) {
52            e.printStackTrace();
53            llback();
54        }
55    }
56
57
58    /**
59      * 根据id查询⽤户
60      */
61    private static void lectUrById(){
62        SqlSession Session();
63        UrMapper Mapper(UrMapper.class);
64        try {
65        UrBean ur=    mapper.lectUrById(2);
66        System.out.String());
67
68            it();
69        } catch (Exception e) {
70            e.printStackTrace();
71            llback();
72        }
73    }
74
75    /**
76      * 查询所有的⽤户
77      */
78    private static void lectAllUr(){
79        SqlSession Session();
80        UrMapper Mapper(UrMapper.class);
81        try {
82        List<UrBean> ur=mapper.lectAllUr();
83        System.out.String());
84        it();
85        } catch (Exception e) {
86            e.printStackTrace();
87            llback();
88        }
89    }
90
91
92 }
测试结果
inrt。

本文发布于:2023-05-12 02:30:27,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/885918.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:配置   数据库   映射   属性   结果   查询   对象
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图