mybatis简单入门实例

ゝ一纸荒年。 2022-06-05 04:55 331阅读 0赞

最近刚接触到mybatis这个orm框架,之前接触过hibernate,不过想吐槽的是hibernate真的比较重量级,开发比较麻烦,所以再来看看mybatis怎么样。
以下是上手小实例。
1.环境部署:引入相关jar包(这里介绍个网站MavenRepository,http://mvnrepository.com ,可以在上面搜寻需要的maven依赖)
2.相关配置文件的配置
(1).Mybatis主配置文件—–Configure.xml(名字不限)

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
  3. <configuration>
  4. <!-- 引入外部配置文件 -->
  5. <properties resource="mybatis/config.properties"/>
  6. <!-- 为JAVA Bean起类别名,简化开发 -->
  7. <typeAliases >
  8. <package name="vip.ntwxhn.model"/>
  9. </typeAliases>
  10. <!-- 配置mybatis运行环境 ,注意:在mybatis和spring整合后environments的配置会省略-->
  11. <environments default="development">
  12. <environment id="development">
  13. <!--采用jdbc的事务提交-->
  14. <transactionManager type="JDBC" />
  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="username" value="${jdbc.username}" />
  22. <property name="password" value="${jdbc.password}" />
  23. </dataSource>
  24. </environment>
  25. </environments>
  26. <mappers>
  27. <!--mapper标签配置的是映射文件-->
  28. <mapper resource="mappers/User.xml"/>
  29. </mappers>
  30. </configuration>

(2)Configure.xml中引用的config.properties

  1. jdbc.driver=com.mysql.cj.jdbc.Driver
  2. jdbc.url=jdbc:mysql://localhost:3306/blog?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
  3. jdbc.username=root
  4. jdbc.password=root

注:jdbc.url的配置看着好像过长,但是后面的参数都是有用的,解决了我的程序运行时的一个异常,如下:

  1. java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone.
  2. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

这个错误是因为mysql连接的依赖包是高版本的情况下,在配置jdbc.url不能像jdbc:mysql://localhost:3306/blog这样简单的配::
得像下面这样配

  1. jdbc.url=jdbc:mysql://localhost:3306/blog?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

(3)映射文件UserMapper.xml(上面好像有些啰嗦,哈哈)

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <!--sql语句结尾不加分号-->
  4. <!--sql语句中#{}代表占位符,没有sql注入的危险;${}是拼接符,有sql注入的危险-->
  5. <mapper namespace="test">
  6. <select id="query" parameterType="java.lang.String" resultType="vip.ntwxhn.model.User">
  7. SELECT * FROM USER WHERE username LIKE '%${value}%'
  8. </select>
  9. <!--插入时参数类型为pojo-->
  10. <insert id="add" parameterType="vip.ntwxhn.model.User" >
  11. INSERT INTO USER(userId,username) VALUES(#{userId},#{username});
  12. </insert>
  13. </mapper>

(4)当然还得有实体类User

  1. package vip.ntwxhn.model;
  2. /** * Created by user on 2017/11/17. */
  3. public class User {
  4. private String userId;
  5. private String username;
  6. private String password;
  7. private String email;
  8. private String phonenumber;
  9. setter,getter省略.....

(5)测试类Test

  1. package vip.ntwxhn.service;
  2. import org.apache.ibatis.io.Resources;
  3. import org.apache.ibatis.session.SqlSession;
  4. import org.apache.ibatis.session.SqlSessionFactory;
  5. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  6. import vip.ntwxhn.model.User;
  7. import java.io.IOException;
  8. import java.io.InputStream;
  9. import java.util.List;
  10. /** * Created by user on 2017/11/5. */
  11. public class Test {
  12. public static void main(String[] args) throws IOException {
  13. InputStream resourceAsStream = Resources.getResourceAsStream("mybatis/Configure.xml");
  14. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
  15. SqlSession sqlSession = sqlSessionFactory.openSession();
  16. // User user = new User();
  17. // user.setUserId("6");
  18. // user.setUsername("dfg");
  19. // sqlSession.insert("test.add",user);
  20. // sqlSession.commit();
  21. User user = sqlSession.selectOne("test.query", "1");
  22. System.out.println(user);
  23. sqlSession.close();
  24. }
  25. }

以上代码都是运行过再贴的,如果想粘贴的话,请放心。

发表评论

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

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

相关阅读

    相关 MyBatis经典入门实例

    MyBatis作为持久层框架,其主要思想是将程序中的大量sql语句剥离出来,配置在配置文件中,实现sql的灵活配置。这样做的好处是将sql与程序代码分离,可以在不修改程序代码的

    相关 mybatis-plus简单入门实例

        mybatis-plus从名字上看,就知道是一个mybatis的加强版,这个加强版的确帮助我们简化了一部分配置,另外,也帮助我们默认提供了一些新的操作API。以前我们在

    相关 mybatis简单入门实例

    mybatis是一个数据持久层框架,他与hibernate相比,也有自己的优点,当我们进行多表关联查询的时候,很容易实现,因为他天生就是用来写sql实现功能的,而hiberna