天天看點

MyBatis連接配接MySQL資料庫--代碼部分

首先是項目包展示

MyBatis連接配接MySQL資料庫--代碼部分

代碼部分

com.exercise.mybatis.domain包下的Role.java部分

package com.exercise.mybatis.domain;

public class Role {
	private int id;
	private String roleCode;
	private String roleName;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getRoleCode() {
		return roleCode;
	}
	public void setRoleCode(String roleCode) {
		this.roleCode = roleCode;
	}
	public String getRoleName() {
		return roleName;
	}
	public void setRoleName(String roleName) {
		this.roleName = roleName;
	}
}
           

com.exercise.mybatis.mapper包下的RoleMapper.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" >
<!-- namespace命名空間  用來區分不同的mapper -->
<!-- 一般我們使用 包名+檔案名 的形式命名此命名空間 -->
<mapper namespace="com.exercise.mybatis.mapper.RoleMapper">
  <!-- 建立一個映射mapper和實體domain相關聯的一個Map,type就是實體Role的包+類名 -->
  <resultMap id="BaseResultMap" type="com.exercise.mybatis.domain.Role" >
  	<!-- id表示資料庫表中的id字段也就是主鍵字段 -->
  	<!-- 第一個參數column的值表示為從資料庫表中查詢到的結果字段,對應着資料庫表中的字段 -->
  	<!-- 第二個參數property的值表示實體類中的成員變量,對應着實體中的字段 -->
  	<!-- 第三個參數jdbcType的值表示此字段下值的資料類型,使用的形式為MySQL中的資料類型 -->
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="roleCode" property="roleCode" jdbcType="VARCHAR" />
    <result column="roleName" property="roleName" jdbcType="VARCHAR" />
  </resultMap>
  
  <!-- 建立一個select查詢語句 -->
  <!-- 第一個參數為這個select選擇語句的名字 -->
  <!-- 第二個參數為查詢結果如何傳回,我們把我們原來設定的關聯關系BaseResultMap填入,表示查詢的結果會按照我們原來設定的實體關聯關系,填入到我們建立的實體類中 -->
  <!-- 第三個參數為此查詢語句所需要的參數類型 -->
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
    select 
    id, roleCode, roleName
    from smbms_role
    <!-- 這之中的#{}表示一個占位符,其中的内容就是我們傳入的參數 -->
    where id = #{id,jdbcType=INTEGER}
  </select>
  
</mapper>
           

com.exercise.mybatis.test包下的Test.java檔案

package com.exercise.mybatis.test;

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 com.exercise.mybatis.domain.Role;
// import com.exercise.mybatis.mapper.RoleMapper;

public class Test {
	public static void main(String[] args) {
        // 擷取配置檔案
        String resource = new String("SqlMapConfig.xml");
        // 擷取配置檔案輸入流
        InputStream inputStream;
        try {
            
            inputStream = Resources.getResourceAsStream(resource);
             //建立SqlSessionFactory(sql會話工廠)
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            //通過工廠的到sqlsession(會話)
            SqlSession sqlSession = sqlSessionFactory.openSession();
            // RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
            // Role role = roleMapper.selectByPrimaryKey(1);
            // 執行查詢-->關閉會話
            // 第一個參數為要執行的語句,格式為:命名空間名+id名。命名空間就是Mapper檔案開始時要填入的内容
            // 第二個參數為執行該語句所需的參數,如果不需要參數也可以不填
            Role role = sqlSession.selectOne("com.exercise.mybatis.mapper.RoleMapper.selectByPrimaryKey",1);
            System.out.println(role.getRoleCode() + " " + role.getRoleName() );  
            
            sqlSession.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

	}
}
           

根目錄下的log4j.properties檔案

# Global logging configuration
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
           

根目錄下的SqlMapConfig.xml檔案

<!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事務管理,事務控制由mybatis管理-->
           <transactionManager type="JDBC" />
       		<!-- 資料庫連接配接池,由mybatis管理-->
           <dataSource type="POOLED">
               <property name="driver" value="com.mysql.jdbc.Driver" />
               <!-- 這之中的value裡填寫要連接配接的資料庫位址,localhost表示本地,3306表示資料庫軟體連接配接端口,smbms表示所要連接配接的具體資料庫名字 -->
               <!-- 可以将localhost:3306,改為公網下的ip位址和端口号,即可實作連接配接公網下的資料庫軟體 -->
               <property name="url" value="jdbc:mysql://localhost:3306/smbms" />
               <!-- 表示連接配接資料庫軟體所使用的使用者名 -->
               <property name="username" value="root" />
               <!-- 表示連接配接資料庫軟體所使用的登陸密碼 -->
               <property name="password" value="" />
           </dataSource>
       </environment>
   </environments>
   
   <mappers>
   	<mapper resource="com/exercise/mybatis/mapper/RoleMapper.xml" />
   </mappers>

</configuration>