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