Java--MyBatis基本配置及实现简单的部门查询(SQLServer)
1.初始准备(引入jar包)
把所需要的 jar 包放到 lib 文件夹中 (mybatis-3.2.3.jar、sqljdbc1.jar、sqljdbc41.jar、mysql-connector-java-5.1.29-bin.jar)
然后 在对应的 jar包上 右键 Build Path->Add to Build Path 加载进去
2.数据库配置(用的SQLSever 其他的类似)
3.配置MyBatisConfig.xml 文件
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
3
4 <configuration>
5 <!-- 引用数据库连接配置 -->
6 <properties resource="database.properties"></properties>
7
8 <!-- 定义别名 -->
9 <typeAliases>
10 <!-- <typeAlias type="com.monv.mybatis.entity.BuMen" alias = "BuMen" /> -->
11 <!-- 因为一个包里边有多个类 所以可以直接定义包名 -->
12 <package name = "com.monv.mybatis.entity" />
13 </typeAliases>
14
15 <!-- 定义数据源 -->
16 <environments default="development">
17 <environment id="development">
18 <!-- 事物管理 -->
19 <transactionManager type="JDBC"/>
20 <dataSource type ="POOLED">
21 <property name = "driver" value = "${driver}"/>
22 <property name = "url" value = "${url}"/>
23 <property name = "username" value = "${user}"/>
24 <property name = "password" value = "${password}"/>
25 </dataSource>
26 </environment>
27 </environments>
28
29 <!-- 定义映射文件 Mapper -->
30 <mappers>
31 <!-- 映射单独的文件 -->
32 <!-- <mapper resource = "com.monv.mybatis.mapper/BuMenMapper.xml"/> -->
33
34 <!-- 映射包名 -->
35 <package name="com.monv.mybatis.mapper"/>
36 </mappers>
37 </configuration>
4.定义部门的实体类(BuMen.java)
添加默认的方法
添加 Get() 和 Set() 方法
添加 toString() 方法 方便打印显示
1 package com.monv.mybatis.entity; 2 3 public class BuMen { 4 5 private Integer id; 6 private String innerCode; 7 private String deptName; 8 9 public BuMen() { 10 super(); 11 } 12 13 public Integer getId() { 14 return id; 15 } 16 public void setId(Integer id) { 17 this.id = id; 18 } 19 public String getInnerCode() { 20 return innerCode; 21 } 22 public void setInnerCode(String innerCode) { 23 this.innerCode = innerCode; 24 } 25 public String getDeptName() { 26 return deptName; 27 } 28 public void setDeptName(String deptName) { 29 this.deptName = deptName; 30 } 31 32 @Override 33 public String toString() { 34 return "BuMen [id=" + id + ", innerCode=" + innerCode + ", deptName=" 35 + deptName + "]"; 36 } 37 38 }
5.定义Mapper接口实现查询功能(BuMenMapper.java)
1 package com.monv.mybatis.mapper; 2 3 import com.monv.mybatis.entity.BuMen; 4 5 public interface BuMenMapper { 6 7 BuMen selectBuMen(Integer id);//部门的查询 返回类型 是部门 8 9 }
6.定义Mapper.xml 编写SQL语句(BuMenMapper.xml)
namespace="com.monv.mybatis.mapper.BuMenMapper" //对应的是第5步定义的Mapper接口文件
id = "selectBuMen" //对应的是 第5步定义的Mapper接口中的 selectBuMen() 方法的名字;
parameterType = "int" //对应的是 第5步定义的Mapper接口中的 selectBuMen() 方法 中的参数类型;
resultType="BuMen" //对应的是 第5步定义的Mapper接口中的 selectBuMen() 方法 中的返回类型;
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd.mybatis-3-mapper.dtd">
3
4 <mapper namespace="com.monv.mybatis.mapper.BuMenMapper">
5
6 <!-- statement -->
7 <!-- 这里返回的resultType 也可以写为全限定名"com.monv.mybatis.entity.BuMen" 因为在mybatis的配置文件中 有定义别名 所以这里的resultType 可以直接用BuMen-->
8 <select id = "selectBuMen" parameterType = "int" resultType="BuMen">
9 select * from tbInfoDept where id = #{id}
10 </select>
11
12 </mapper>
7.从XML构建 SqlSessionFactory
1 package com.monv.mybatis.utils; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import org.apache.ibatis.io.Resources; 6 import org.apache.ibatis.session.SqlSession; 7 import org.apache.ibatis.session.SqlSessionFactory; 8 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 9 10 public class BuMenUtil { 11 12 private static SqlSessionFactory sqlSessionFactory = null; 13 14 static{ 15 16 try { 17 InputStream in = Resources.getResourceAsStream("MyBatisConfig.xml"); 18 sqlSessionFactory = new SqlSessionFactoryBuilder().build(in); 19 } catch (IOException e) { 20 e.printStackTrace(); 21 } 22 23 } 24 25 private BuMenUtil(){}; 26 27 public static SqlSession getSqlSession(){ 28 return sqlSessionFactory.openSession(); 29 } 30 }
8.测试
测试方法一:调用BuMenUtil里的方法 获得session
1 package com.monv.mybatis.test; 2 3 import org.apache.ibatis.session.SqlSession; 4 5 import com.monv.mybatis.entity.BuMen; 6 import com.monv.mybatis.mapper.BuMenMapper; 7 import com.monv.mybatis.utils.BuMenUtil; 8 9 public class TestBuMen { 10 public static void main(String[] args) { 11 12 SqlSession session = BuMenUtil.getSqlSession(); 13 BuMenMapper buMenMapper = session.getMapper(BuMenMapper.class); 14 BuMen buMen = buMenMapper.selectBuMen(30); 15 session.close(); 16 17 System.out.println(buMen); 18 19 } 20 }
测试方法二:在测试程序中 直接定义
1 package com.monv.mybatis.test; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 6 import org.apache.ibatis.io.Resources; 7 import org.apache.ibatis.session.SqlSession; 8 import org.apache.ibatis.session.SqlSessionFactory; 9 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 10 11 import com.monv.mybatis.entity.BuMen; 12 import com.monv.mybatis.mapper.BuMenMapper; 13 14 15 public class TestBuMen { 16 public static void main(String[] args) throws IOException { 17 18 // SqlSession session = BuMenUtil.getSqlSession(); 19 // BuMenMapper buMenMapper = session.getMapper(BuMenMapper.class); 20 // BuMen buMen = buMenMapper.selectBuMen(30); 21 // session.close(); 22 // 23 // System.out.println(buMen); 24 //1.加载配置文件 25 InputStream in = Resources.getResourceAsStream("MyBatisConfig.xml"); 26 //2. 构建SqlSessionFactory 27 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in); 28 //3. 通过SqlSessionFactory 创建 SqlSession 29 SqlSession session = sqlSessionFactory.openSession(); 30 //4. 通过SqlSession 获得DAO的实现类 31 BuMenMapper buMenMapper = session.getMapper(BuMenMapper.class); 32 //5. 测试方法 33 BuMen buMen = buMenMapper.selectBuMen(20); 34 session.close(); 35 System.out.println(buMen); 36 37 } 38 }
放在最后目录结构
接口
输出是最好的输入。把学习的内容输出出来,加深记忆;