05Mybatis_入門程序——根據id查詢用戶


這篇文章我們來做一個入門的案例:

     建表;

 

 

 

給出案例結構:

            

 

 

第一步:編寫po類:User.java

package cn.itcast.mybatis.po;

import java.util.Date;

public class User {
private int id;//主鍵
private String username;//用戶的名稱
private Date birthday;//生日
private String sex;//性別
private String address;//地址
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getUsername() {
    return username;
}
public void setUsername(String username) {
    this.username = username;
}
public Date getBirthday() {
    return birthday;
}
public void setBirthday(Date birthday) {
    this.birthday = birthday;
}
public String getSex() {
    return sex;
}
public void setSex(String sex) {
    this.sex = sex;
}
public String getAddress() {
    return address;
}
public void setAddress(String address) {
    this.address = address;
}

}

 

 

 

第二步:編寫config包下面的SqlMapConfig.xml。這個配置文件主要是配置mybaits運行環境,數據源,事務等。SqlMapConfig.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>
    <!-- 和spring整合后 environments配置將廢除-->
    <environments default="development">
        <environment id="development">
        <!-- 使用jdbc事務管理-->
            <transactionManager type="JDBC" />
        <!-- 數據庫連接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/mybaits?characterEncoding=utf-8" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
    
    <!-- 把映射文件(sqlmap/user.xml)加載進sqlMapConfig.xml-->
        <mappers>
        <mapper resource="sqlmap/user.xml"/>
         </mappers>
    
    
    
</configuration>

 

 

 

第三步:編寫映射文件sqlmap/user.xml

<?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">
<!-- nanmespace:命名空間。 作用就是對sql進行分類話管理,理解Sal分離

注意:使用mapper代理方式,namespace有特殊重要的作用
-->

<mapper namespace="test">
    
    <!-- 根據id獲取用戶信息 -->
    <!-- 在映射文件中配置很多sql語句 -->
    <!-- 
    id:標識映射文件中的sql;
    將sql語句封裝到mappedStatement對象中,所以將id稱為statement的id;parmenterType:指定輸入的參數的類型,這里指定的int型
    #{}表示一個占位符號;
    #{id}:其中的id表示接收輸入的參數,參數名稱就是id,如果輸入參數就是簡單類型,#{}中的參數名可以任意,可以value或其它名稱
    resultType:指定的sql輸出結果的所映射的java對象類型,select指定resultType表示將單條記錄映射成的java對象;
    
     -->
    <select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">
        select * from user where id = #{id}
    </select>
    <!-- 自定義條件查詢用戶列表 -->
    <select id="findUserByUsername" parameterType="java.lang.String" 
            resultType="cn.itcast.mybatis.po.User">
       select * from user where username like '%${value}%' 
    </select>
    
    
</mapper>

 

第四步:編寫日志文件(log4j.properties)和Junit測試程序:

log4j.properties文件源碼:

 

# Global logging configuration
#\u5728\u5f00\u53d1\u73af\u5883\u4e0b\u65e5\u5fd7\u7ea7\u522b\u8981\u8bbe\u7f6e\u6210DEBUG\uff0c\u751f\u4ea7\u73af\u5883\u8bbe\u7f6e\u6210info\u6216error
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

 

 

 

Junit測試程序源碼:

package cn.itcast.mybatis.first;

import java.io.IOException;
import java.io.InputStream;

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 org.junit.Before;
import org.junit.Test;

import cn.itcast.mybatis.po.User;

public class Mybatis_first {
    
    //會話工廠
    private SqlSessionFactory sqlSessionFactory;
    //這些事必備的,所以放在Before這里了
    @Before
    public void createsqlSessionFactory() throws IOException
    {
        //配置文件
        String resource="SqlMapConfig.xml";
        InputStream inputStream=Resources.getResourceAsStream(resource);
        //使用SqlSessionFactoryBuilder從配置文件中創建SqlSessionFactory.
        sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
    }
    @Test
//根據id查詢用戶的信息
    public void testFindUseById()
    {    //數據庫會話實例
        SqlSession sqlSession=null;
        try {
        
            //創建數據庫會話實例sqlSession;
            sqlSession=sqlSessionFactory.openSession();
            
            User user=sqlSession.selectOne("test.findUserById", 10);
//輸出對象的hashcode System.out.println(user); }
catch (Exception e) { e.printStackTrace(); } finally{ //如果sqlSession實例是創建的那么把他關閉掉 if(sqlSession!=null) {sqlSession.close(); } } } }

 

運行結果:成功了,

輸出為:cn.itcast.mybatis.po.User@4c1bd4f6


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM