免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1063 | 回复: 0
打印 上一主题 下一主题

MyBatis学习(一) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-19 14:02 |只看该作者 |倒序浏览
一个简单的例子
 
我对MyBatis的理解仅仅是:它以前叫IBtais,现在投到谷歌帐下,改名MyBatis,这个框架把JDBC中的重复代码封装起来,减少代码量。仅仅知道这些而已,慢慢学习吧,从网上找了一个最简单的例子。
MyBatis+MySQL的,记录如下:
①数据库
在MySQL中,test数据库下,简历user表,一共两个字段id和name,建表语句略。
②需导入的包
只有两个:
mybatis-3.0.3.jar
mysql-connector-java-5.1.9-bin.jar(JDBC包)
③目录结构
采用最简单的结构,domain包下有且仅有四个文件
configuration.xml
User.xml
User.java
Test.java
④实体类javabean,总共两个变量
view plaincopy to clipboardprint?
01.package domain;  
02. 
03.public class User {  
04.    private int id;  
05.    private String name = null;  
06.    public User() {  
07.    }  
08.    public User(int id, String name) {  
09.        this.id = id;  
10.        this.name = name;  
11.    }  
12.    public int getId() {  
13.        return id;  
14.    }  
15.    public void setId(int id) {  
16.        this.id = id;  
17.    }  
18.    public String getName() {  
19.        return name;  
20.    }  
21.    public void setName(String name) {  
22.        this.name = name;  
23.    }  
24.    @Override 
25.    public String toString() {  
26.        return "User [id=" + id + ", name=" + name + "]";  
27.    }  
28.} 
package domain;
public class User {
 private int id;
 private String name = null;
 public User() {
 }
 public User(int id, String name) {
  this.id = id;
  this.name = name;
 }
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 @Override
 public String toString() {
  return "User [id=" + id + ", name=" + name + "]";
 }
}
⑤MyBatis总配置文件configuration.xml
 
view plaincopy to clipboardprint?
01.<?xml version="1.0" encoding="UTF-8" ?>  
02.<!DOCTYPE configuration PUBLIC   
03.    "-//mybatis.org//DTD Config 3.0//EN" 
04.    "http://mybatis.org/dtd/mybatis-3-config.dtd">  
05.<configuration>  
06.    <typeAliases>  
07.        <typeAlias alias="User" type="domain.User" />  
08.    </typeAliases>  
09.    <environments default="development">  
10.        <environment id="development">  
11.            <transactionManager type="JDBC" />  
12.            <dataSource type="POOLED">  
13.                <property name="driver" value="com.mysql.jdbc.Driver" />  
14.                <property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8" />  
15.                <property name="username" value="root" />  
16.                <property name="password" value="" />  
17.            </dataSource>  
18.        </environment>  
19.    </environments>  
20.    <mappers>  
21.        <mapper resource="domain/User.xml" />  
22.    </mappers>  
23.</configuration> 
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC
    "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <typeAliases>
        <typeAlias alias="User" type="domain.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/test?useUnicode=true&characterEncoding=UTF-8" />
                <property name="username" value="root" />
                <property name="password" value="" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="domain/User.xml" />
    </mappers>
</configuration>
⑥User类的配置文件User.xml
view plaincopy to clipboardprint?
01.<?xml version="1.0" encoding="UTF-8" ?>  
02.<!DOCTYPE mapper PUBLIC   
03.    "-//mybatis.org//DTD Mapper 3.0//EN" 
04.    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
05.<mapper namespace="User">  
06.    <select id="selectUser" parameterType="int" resultType="User"><!--[CDATA[  
07.        select * from user where id = #{id}  
08.    ]]--></select>  
09.</mapper> 
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC
    "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="User">
    <select id="selectUser" parameterType="int" resultType="User"><!--[CDATA[
        select * from user where id = #{id}
    ]]--></select>
</mapper>
⑦测试用例
view plaincopy to clipboardprint?
01.package domain;  
02. 
03.import java.io.IOException;  
04.import java.io.Reader;  
05.import org.apache.ibatis.io.Resources;  
06.import org.apache.ibatis.session.SqlSession;  
07.import org.apache.ibatis.session.SqlSessionFactory;  
08.import org.apache.ibatis.session.SqlSessionFactoryBuilder;  
09.import domain.User;  
10. 
11.public class Test {  
12.    public static void main(String[] args) throws IOException {  
13.        String resource = "domain/configuration.xml";  
14.        Reader reader = Resources.getResourceAsReader(resource);  
15.        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);  
16.        SqlSession session = ssf.openSession();  
17.        try {  
18.            User user = (User) session.selectOne("selectUser", "1");  
19.            System.out.println(user);  
20.        } catch (Exception e) {  
21.            e.printStackTrace();  
22.        } finally {  
23.            session.close();  
24.        }  
25.    }  
26.} 
package domain;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import domain.User;
public class Test {
    public static void main(String[] args) throws IOException {
        String resource = "domain/configuration.xml";
        Reader reader = Resources.getResourceAsReader(resource);
        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
        SqlSession session = ssf.openSession();
        try {
            User user = (User) session.selectOne("selectUser", "1");
            System.out.println(user);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            session.close();
        }
    }
}
以上,MyEclipse 8.5下编译通过

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wanda39kela/archive/2010/12/28/6103282.aspx
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP