Mybatis初学

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 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
目录
相关文章
|
XML Java 数据库连接
|
SQL XML Java
|
Java 数据库连接 mybatis
|
7月前
|
SQL Java 数据库连接
|
5月前
|
SQL Java 数据库连接
Mybatis(一)
Mybatis(一)
40 0
|
7月前
|
SQL Java 数据库连接
从0开始回顾Mybatis
Mybatis 1、什么是Mybatis? 概念: 1. Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。 2. MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 缺点: 1. SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求
|
7月前
|
SQL 缓存 Java
|
XML Java 数据库连接
MyBatis-Plus使用
MyBatis-Plus使用
|
SQL Java 数据库连接
mybatis 中的updateByPrimaryKey与updateByPrimaryKeySelective
mybatis 中的updateByPrimaryKey与updateByPrimaryKeySelective
|
SQL XML 存储