首先是項目包展示
代碼部分
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>