mybatis基础教程之一:开发环境搭建

柔情只为你懂 2023-10-16 19:46 46阅读 0赞

以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错,比hibernate灵活。性能也比hibernate好。而且也比较轻量级,因为当时在项目中,没来的及做很很多笔记。后来项目结束了,我也没写总结文档。已经过去好久了。但最近突然又对这个ORM 工具感兴趣。因为接下来自己的项目中很有可能采用这个ORM工具。所以在此重新温习了一下 mybatis, 因此就有了这个系列的 mybatis 教程.

什么是mybatis
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录.

orm工具的基本思想
无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点:

  1. 从配置文件(通常是XML配置文件中)得到 sessionfactory.
  2. 由sessionfactory 产生 session
  3. 在session 中完成对数据的增删改查和事务提交等.
  4. 在用完之后关闭session 。

  5. 在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。

mybatis 的开发环境搭建,选择: myeclipse 10 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包。这些软件工具均可以到各自的官方网站上下载。
首先建立一个名字为 MyBaits 的 web project

  1. 现阶段,你可以直接建立java 工程,但一般都是开发web项目,这个系列教程最后也是web的,所以一开始就建立web工程。
  2. 将 mybatis-3.2.0-SNAPSHOT.jar,mysql-connector-java-5.1.22-bin.jar 拷贝到 web工程的lib目录.

下面开始真正配置mybatis项目了。

  1. 在MyBatis 里面创建两个源码目录,分别为 com.mybaties.entry、com.mybaties.test.

截图效果:如下

Center

  1. 设置mybatis 配置文件:Configuration.xml, 在当前项目目录下建立此文件,内容如下:
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  4. <configuration>
  5. <!--对应com.mybaties.entry.User实体类 -->
  6. <typeAliases>
  7. <typeAlias alias="User" type="com.mybaties.entry.User"/>
  8. </typeAliases>
  9. <!--数据源配置 -->
  10. <environments default="development">
  11. <environment id="development">
  12. <transactionManager type="JDBC"/>
  13. <dataSource type="POOLED">
  14. <property name="driver" value="com.mysql.jdbc.Driver"/>
  15. <property name="url" value="jdbc:mysql://127.0.0.1:3306/yigou" />
  16. <property name="username" value="swxm"/>
  17. <property name="password" value="swxm"/>
  18. </dataSource>
  19. </environment>
  20. </environments>
  21. <mappers>
  22. <!--对应com.mybaties.entry.User实体类的相关操作 -->
  23. <mapper resource="com/mybaties/entry/User.xml"/>
  24. </mappers>
  25. </configuration>
  1. 建立与数据库对应的 java class,以及映射文件.
    在src下建立package:com.mybaties.entry ,并在这个 package 下建立 User 类:

    package com.mybaties.entry;

    import java.io.Serializable;

    public class User implements Serializable {

    1. /**
    2. *
    3. */
    4. private static final long serialVersionUID = 1L;
    5. private String id;
    6. private String username;
    7. private String password;
    8. private String name;
    9. private String sex;
    10. private String email;
    11. private String company_name;
    12. private String phone;
    13. private String post_city;
    14. private String post_area;
    15. private String post_add;
    16. private String relation_person;
    17. private String relation_phone;
    18. public String getId() {
    19. return id;
    20. }
    21. public void setId(String id) {
    22. this.id = id;
    23. }
    24. public String getUsername() {
    25. return username;
    26. }
    27. public void setUsername(String username) {
    28. this.username = username;
    29. }
    30. public String getPassword() {
    31. return password;
    32. }
    33. public void setPassword(String password) {
    34. this.password = password;
    35. }
    36. public String getName() {
    37. return name;
    38. }
    39. public void setName(String name) {
    40. this.name = name;
    41. }
    42. public String getSex() {
    43. return sex;
    44. }
    45. public void setSex(String sex) {
    46. this.sex = sex;
    47. }
    48. public String getEmail() {
    49. return email;
    50. }
    51. public void setEmail(String email) {
    52. this.email = email;
    53. }
    54. public String getCompany_name() {
    55. return company_name;
    56. }
    57. public void setCompany_name(String company_name) {
    58. this.company_name = company_name;
    59. }
    60. public String getPhone() {
    61. return phone;
    62. }
    63. public void setPhone(String phone) {
    64. this.phone = phone;
    65. }
    66. public String getPost_city() {
    67. return post_city;
    68. }
    69. public void setPost_city(String post_city) {
    70. this.post_city = post_city;
    71. }
    72. public String getPost_area() {
    73. return post_area;
    74. }
    75. public void setPost_area(String post_area) {
    76. this.post_area = post_area;
    77. }
    78. public String getPost_add() {
    79. return post_add;
    80. }
    81. public void setPost_add(String post_add) {
    82. this.post_add = post_add;
    83. }
    84. public String getRelation_person() {
    85. return relation_person;
    86. }
    87. public void setRelation_person(String relation_person) {
    88. this.relation_person = relation_person;
    89. }
    90. public String getRelation_phone() {
    91. return relation_phone;
    92. }
    93. public void setRelation_phone(String relation_phone) {
    94. this.relation_phone = relation_phone;
    95. }
  1. }

同时建立这个User 的映射文件 User.xml:

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <!--工作空间 -->
  5. <mapper namespace="com.mybaties.entry.UserMapper">
  6. <!--配置查询语句:id---查询语句方法Id, parameterType---请求参数类型,resultType---结果类型-->
  7. <select id="selectUserByID" parameterType="int" resultType="User">
  8. <!--查询语句 -->
  9. select * from `user` where id = #{id}
  10. </select>
  11. </mapper>

下面对这几个配置文件解释下:
1.Configuration.xml 是 mybatis 用来建立 sessionFactory 用的,里面主要包含了数据库连接相关东西,还有 java 类所对应的别名,比如 这个别名非常重要,你在 具体的类的映射中,比如User.xml 中 resultType 就是对应这里的。要保持一致,当然这里的 resultType 还有另外单独的定义方式,后面再说。

  1. Configuration.xml 里面 的是包含要映射的类的xml配置文件。
  2. 在User.xml 文件里面 主要是定义各种SQL 语句,以及这些语句的参数,以及要返回的类型等.

开始测试:

  1. package com.mybaties.test;
  2. import java.io.IOException;
  3. import java.io.Reader;
  4. import org.apache.ibatis.io.Resources;
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.apache.ibatis.session.SqlSessionFactory;
  7. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  8. import com.mybaties.entry.User;
  9. public class Test {
  10. /**
  11. * @param 测试方法
  12. */
  13. public static void main(String[] args) {
  14. // TODO Auto-generated method stub
  15. SqlSession session = null;
  16. try {
  17. String resource = "Configuration.xml";
  18. Reader reader= Resources.getResourceAsReader(resource);
  19. SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
  20. SqlSessionFactory factory = builder.build(reader);
  21. session = factory.openSession();
  22. User user = (User) session.selectOne("com.mybaties.entry.UserMapper.selectUserByID",1);
  23. System.out.println(user.getName());
  24. System.out.println(user.getPassword());
  25. } catch (IOException e) {
  26. // TODO Auto-generated catch block
  27. e.printStackTrace();
  28. }
  29. }
  30. }

现在运行这个程序,是不是得到查询结果了。恭喜你,环境搭建配置成功,接下来将进入myBaties基础教程之二,主要讲述基于接口的操作方式,增删改查。



发表评论

表情:
评论列表 (有 0 条评论,46人围观)

还没有评论,来说两句吧...

相关阅读