1.数据库驱动
对于不同数据库,数据库驱动不同
postgre:org.postgresql.Driver
Mysql:com.mysql.cj.jdbc.Driver
比如本文springboot整合mybatis
切记:
1.关于mybatis的配置
2.关于数据库资源的配置
两者缺一不可
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
2.实践出真理
传统jdbc连接,针对小型项目
Connection c = null;
Statement stmt = null;
try {
Class.forName("org.postgresql.Driver");
c = DriverManager
.getConnection("jdbc:postgresql://localhost:5432/postgres",
"postgres", "password");
c.setAutoCommit(false);
System.out.println("Opened database successfully");
stmt = c.createStatement();
ResultSet rs = stmt.executeQuery( "SELECT * FROM teacher;" );
while ( rs.next() ) {
String name = rs.getString("name");
System.out.println( "NAME = " + name );
System.out.println();
}
rs.close();
stmt.close();
c.close();
} catch ( Exception e ) {
System.err.println( e.getClass().getName()+": "+ e.getMessage() );
System.exit(0);
}
对于整合到springboot上,需要建立实体类包
在entity包里,我建立了简单的实体类与数据库里的类一一对应(比较简单,只设立了一个参数)
public class teacher {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "teacher{" +
"name='" + name + '\'' +
'}';
}
}
这个时候,实体类是我们建立mapper的桥梁
在mapper包下创建接口teacher,写出自己需要的功能。
注意注解@Mapper的添加
@Mapper
public interface teaMapper {
public ArrayList<String> list();
}
在resources下建立一个mapper包
一定到一一对应 namespace
<?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" >
<mapper namespace="com.sap.report.mapper.teaMapper" >
<resultMap id="BaseResultMap" type="com.sap.report.entity.teacher" >
<result column="name" property="name" javaType="string" />
</resultMap>
<select id="list" resultType="string">
select name from teacher
</select>
</mapper>
重点:关于配置文件的书写(切记mapper-locations的配置)
之后就可以使用了(换成mysql也一样,修改drive驱动和url就行)
这是没写service层直接引用的mapper接口
ArrayList<String> list = (ArrayList<String>) teaMapper.list();
for(String stu:list){
System.out.println(stu.toString());
}