Mybatis入门(一)

  半年不写后台,又给忘光了,呵呵,这次记个笔记吧,废话就此止

今天就写一个简单的mybatis demo

所需jar:

mybatis-3.2.1

mysql-connector-java-5.0.8

数据库表

demo的工程目录

 

conf.xml

mybatis配置文件

<?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>
    <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://127.0.0.1:3306/mydb" />
                <property name="username" value="root" />
                <property name="password" value="mald123" />
            </dataSource>
        </environment>
    </environments>
</configuration>

User.java

 1 package com.mld.domain;
 2 
 3 public class User {
 4     private String userId;
 5     private String userName;
 6     private String password;
 7     private String sex;
 8     private String email;
 9     public String getUserId() {
10         return userId;
11     }
12     public void setUserId(String userId) {
13         this.userId = userId;
14     }
15     public String getUserName() {
16         return userName;
17     }
18     public void setUserName(String userName) {
19         this.userName = userName;
20     }
21     public String getPassword() {
22         return password;
23     }
24     public void setPassword(String password) {
25         this.password = password;
26     }
27     public String getSex() {
28         return sex;
29     }
30     public void setSex(String sex) {
31         this.sex = sex;
32     }
33     public String getEmail() {
34         return email;
35     }
36     public void setEmail(String email) {
37         this.email = email;
38     }
39     @Override
40     public String toString() {
41         return "User [userId=" + userId + ", userName=" + userName
42                 + ", password=" + password + ", sex=" + sex + ", email="
43                 + email + "]";
44     }
45     
46     
47 }
View Code

userMapping.xml

和每个数据库表所对应的po对应,进行表的各项操作

<?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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀)
 -->
<mapper namespace="com.mld.mapping.userMapping">  //每个mapper对应于一个表结构的操作
    <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复
    使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型
    resultType="me.gacl.domain.User"就表示将查询结果封装成一个User类的对象返回
    User类就是users表所对应的实体类
    -->
    <!-- 
        根据id查询得到一个user对象
     -->
    <select id="getUserById" parameterType="int" resultType="com.mld.domain.User">
        select * from user where userId=#{id}
    </select>
    <!-- 查询所有 -->
    <select id="getUsers" resultType="com.mld.domain.User">
        select * from user
    </select>
</mapper>

将userMapping.xml注册到conf.xml中

conf.xml

<?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>
    <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://127.0.0.1:3306/mydb" />
                <property name="username" value="root" />
                <property name="password" value="mald123" />
            </dataSource>
        </environment>
    </environments>
    
    <mappers>
        <!-- 注册userMapper.xml文件 ,userMapper.xml位于com.mld.mapping这个包
        下,所以resource写成com/mld/mapping/userMapping.xml
        -->
        <mapper resource="com/mld/mapping/userMapping.xml"></mapper>   //此处/分割
    </mappers> 
</configuration>

test.java

package com.mld.test;

import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.mld.domain.User;

public class test {
    public static void main(String[] args) throws IOException{
        /*Reader reader = Resources.getResourceAsReader("com/mld/test/conf.xml");  //用mybatis提供的方法加载配置文件
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession session = sessionFactory.openSession();
        String statement = "com.mld.mapping.userMapping.getUserById";
        User user = session.selectOne(statement, 2);
        System.out.println(user);*/
        
        String conf = "com/mld/test/conf.xml";
        InputStream is = test.class.getClassLoader().getResourceAsStream(conf); //用类加载器加载配置文件
        SqlSessionFactory sessionfactory = new SqlSessionFactoryBuilder().build(is);
        SqlSession session = sessionfactory.openSession(true);  //为true会自动commit,默认为false,需手动commit
        User user = session.selectOne("com.mld.mapping.userMapping.getUserById", 1);
        List<User> list = session.selectList("com.mld.mapping.userMapping.getUsers");
        System.out.println(list.size());
        System.out.println(user);
    }
}

 运行结果:

 

好了

posted @ 2015-07-24 16:26  暗夜心慌方  阅读(123)  评论(0)    收藏  举报