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> 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章