Mybatis初学

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

Mybatis简介大家可以自行google之。官网为:http://code.google.com/p/mybatis/

我也刚刚开始初学,先来一个小例子:

创建一个User.java文件,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package  com.rollen;
 
public  class  User {
     private  String name;
     private  int  age;
     public  String getName() {
         return  name;
     }
     public  void  setName(String name) {
         this .name = name;
     }
     public  int  getAge() {
         return  age;
     }
     public  void  setAge( int  age) {
         this .age = age;
     }
     @Override
     public  String toString() {
         
         return  "Name:" +name+ "Age" +age;
     }
     
     
}

  上面的java文件位于com.rollen包中,然后在这个包中建立generator.xml文件,代码为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<? xml  version="1.0" encoding="UTF-8" ?> 
<! DOCTYPE  configuration PUBLIC  
     "-//mybatis.org//DTD Config 3.0//EN" 
< configuration
     < typeAliases
         < typeAlias  alias="User" type="com.rollen.User" /> 
     </ typeAliases
     < environments  default="development"> 
         < environment  id="development"> 
             < transactionManager  type="JDBC" /> 
             < dataSource  type="POOLED"> 
                 < property  name="driver" value="com.mysql.jdbc.Driver" /> 
                 < property  name="url" value="jdbc:mysql://localhost:3306/user_db" /> 
                 < property  name="username" value="root" /> 
                 < property  name="password" value="root" /> 
             </ dataSource
         </ environment
     </ environments
     < mappers
         < mapper  resource="com/rollen/user.xml" /> 
     </ mappers
</ configuration

  在com.rollen包下面创建user.xml文件,代码为:

1
2
3
4
5
6
7
8
<? xml  version="1.0" encoding="UTF-8" ?>
<! DOCTYPE  mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
< mapper  namespace="com.rollen.User">
     < select  id="selectUser" parameterType="int" resultType="User" >
          select * from user where age = #{age}
     </ select >
</ mapper >

我们最后编写一个测试类,代码如下“:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package  com.rollen;
import  java.io.*;
 
import  org.apache.ibatis.io.Resources;
import  org.apache.ibatis.session.SqlSession;
import  org.apache.ibatis.session.SqlSessionFactory;
import  org.apache.ibatis.session.SqlSessionFactoryBuilder;
 
public  class  Test {
     public  static  void  main(String[] args) {
         String resource= "com/rollen/generatorConfig.xml" ;
         Reader reader =  null ;
         try  {
             reader = Resources.getResourceAsReader(resource);
         catch  (IOException e) {
             e.printStackTrace();
         }
         SqlSessionFactory factory= new  SqlSessionFactoryBuilder().build(reader);
         SqlSession sqlSession = factory.openSession();
         
         try  {
             User user=sqlSession.selectOne( "selectUser" 10 );
             System.out.println(user);
         } finally {
             sqlSession.close();
         }
         
     }
}

  在上面的generateConfig.xml文件中,也可以改为这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<? xml  version="1.0" encoding="UTF-8" ?> 
<! DOCTYPE  configuration PUBLIC  
     "-//mybatis.org//DTD Config 3.0//EN" 
< configuration >
     < properties >
         < property  name="username" value="root" />
     </ properties >
     < typeAliases >
         < typeAlias  alias="User" type="com.rollen.User" />
     </ typeAliases >
     < environments  default="development">
         < environment  id="development">
             < transactionManager  type="JDBC" />
             < dataSource  type="POOLED">
                 < property  name="driver" value="com.mysql.jdbc.Driver" />
                 < property  name="url" value="jdbc:mysql://localhost:3306/user_db" />
                 < property  name="username" value="${username}" />
                 < property  name="password" value="root" />
             </ dataSource >
         </ environment >
     </ environments >
     < mappers >
         < mapper  resource="com/rollen/user.xml" />
     </ mappers >
</ configuration

  注意,和上面的区别是我们添加了:

1
2
3
< properties >
         < property  name="username" value="root" />
     </ properties >

  并且修改了这行代码:

1
< property  name="username" value="${username}" />

  还可以有如下的修改方法,新建一个config.properties文件,文件内容为:

1
password=root

  然后将generatorconfig.xml文件的内容改为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<? xml  version="1.0" encoding="UTF-8" ?> 
<! DOCTYPE  configuration PUBLIC  
     "-//mybatis.org//DTD Config 3.0//EN" 
< configuration >
     < properties  resource="com/rollen/config.properties">
         < property  name="username" value="root" />
     </ properties >
     < typeAliases >
         < typeAlias  alias="User" type="com.rollen.User" />
     </ typeAliases >
     < environments  default="development">
         < environment  id="development">
             < transactionManager  type="JDBC" />
             < dataSource  type="POOLED">
                 < property  name="driver" value="com.mysql.jdbc.Driver" />
                 < property  name="url" value="jdbc:mysql://localhost:3306/user_db" />
                 < property  name="username" value="${username}" />
                 < property  name="password" value="${password}" />
             </ dataSource >
         </ environment >
     </ environments >
     < mappers >
         < mapper  resource="com/rollen/user.xml" />
     </ mappers >
</ configuration

  需要注意的是如下的两行代码:

1
2
3
< properties  resource="com/rollen/config.properties">
....
< property  name="password" value="${password}" />
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
SQL Java 数据库连接
|
XML Java 数据库连接
|
SQL 算法 Java
Mybatis-plus超详细讲解(2022)
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。
3329 1
|
14天前
|
SQL 缓存 Java
Mybatis
【10月更文挑战第5天】Mybatis
20 0
|
3月前
|
SQL Java 数据库连接
Mybatis02(一)
Mybatis02(一)
26 0
|
11月前
|
Java 数据库连接 数据库
Mybatis及Mybatis-Plus使用
Mybatis及Mybatis-Plus使用
748 2
Mybatis及Mybatis-Plus使用
|
12月前
|
SQL Java 关系型数据库
mybatis plus很好,但是我被它坑了!
作者今天在开发一个后台发送消息的功能时,由于需要给多个用户发送消息,于是使用了 mybatis plus 提供的 saveBatch() 方法,在测试环境测试通过上预发布后,测试反应发送消息接口很慢得等 5、6 秒,于是我就登录预发布环境查看执行日志,发现是 mybatis plus 提供的 saveBatch() 方法执行很慢导致,于是也就有了本篇文章。
61 1
|
SQL Java 数据库连接
14MyBatis - MyBatis介绍
14MyBatis - MyBatis介绍
41 0
|
SQL Java 数据库连接
|
SQL Java 数据库连接
MyBatis(下)
MyBatis(下)