springboot整合持久层的方法实现
目录
- 1. springboot整合jdbcTemplate
- 1.1 pom.xml
- 1.2 application.properties
- 1.3 model
- 1.4 service
- 1.5 serviceImpl,crud案例
- 2. jdbcTemplate配置多数据源
- 2.1 pom.xml
- 2.2 application.properties
- 2.3 实体类
- 2.4 数据源配置
- 2.5 jdbctemplate配置
- 2.6 注入模板测试
- 3. springboot整合mybatis(注解方式)
- 3.1 pom.xml
- 3.2 application.properties
- 3.3 实体类
- 3.4 mapper
- 3.5 service
- 3.6 srviceImpl
- 3.7 扫描mapper
- 3.8 测试
- 4. springboot整合mybatis(xml方式)
- 4.1 pom.xml
- 4.2 application.xml
- 4.3 实体类
- 4.4 mapper
- 4.5 mapper.xml
- 4.6 service
- 4.7 serviceImpl
- 4.8 扫描mapper
- 5. mybatis整合多数据源
- 5.1 pom.xml
- 5.2 application.properties
- 5.3 实体类
- 5.4 mapper1
- 5.5 mapper2
- 5.6 mapper1.xml
- 5.7 mapper2.xml
- 5.8 数据源配置
- 5.9 mybatis配置1
- 5.10 mybatis配置2
- 5.11 项目结构
1. springboot整合jdbcTemplate
1.1 pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.5</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.yl</groupId> <artifactId>jdbctemplate</artifactId> <version>0.0.1-SNAPSHOT</version> <name>jdbctemplate</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
1.2 application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/demo?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8 spring.datasource.username=root spring.datasource.password=root
1.3 model
package com.yl.jdbctemplate.model; import java.io.Serializable; public class Student implements Serializable { private Integer id; private String stuName; private String stuNo; private Integer age; private String stuMessage; @Override public String toString() { return "Student{" + "id=" + id + ", stuName='" + stuName + '\'' + ", stuNo='" + stuNo + '\'' + ", age=" + age + ", stuMessage='" + stuMessage + '\'' + '}'; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getStuName() { return stuName; } public void setStuName(String stuName) { this.stuName = stuName; } public String getStuNo() { return stuNo; } public void setStuNo(String stuNo) { this.stuNo = stuNo; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getStuMessage() { return stuMessage; } public void setStuMessage(String stuMessage) { this.stuMessage = stuMessage; } }
1.4 service
package com.yl.jdbctemplate.service; import com.yl.jdbctemplate.model.Student; import java.util.List; public interface StudentService { int addStudent(Student student); int addStudent2(Student student); int updateStudent(Student student); int deleteStudentById(Integer id); List<Student> getAllStudent(); List<Student> getAllStudent2(); }
1.5 serviceImpl,crud案例
package com.yl.jdbctemplate.service.impl; import com.yl.jdbctemplate.model.Student; import com.yl.jdbctemplate.service.StudentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.PreparedStatementCreator; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.support.GeneratedKeyHolder; import org.springframework.stereotype.Service; import java.sql.*; import java.util.List; @Service public class StudentServiceImpl implements StudentService { @Autowired JdbcTemplate jdbcTemplate; @Override public int addStudent(Student student) { int result = jdbcTemplate.update("insert into student(stu_name,stu_no,age,stu_message) values(?,?,?,?) " ,student.getStuName(),student.getStuNo(),student.getAge(),student.getStuMessage()); return result; } //插入数据,并且回写id @Override public int addStudent2(Student student) { GeneratedKeyHolder keyHolder = new GeneratedKeyHolder(); int result = jdbcTemplate.update(new PreparedStatementCreator() { @Override public PreparedStatement createPreparedStatement(Connection con) throws SQLException { //插入数据后返回主键 PreparedStatement ps = con.prepareStatement("insert into student(stu_name,stu_no,age,stu_message) values(?,?,?,?)" , Statement.RETURN_GENERATED_KEYS); ps.setString(1,student.getStuName()); ps.setString(2,student.getStuNo()); ps.setInt(3,student.getAge()); ps.setString(4,student.getStuMessage()); return ps; } },keyHolder); student.setId(keyHolder.getKey().intValue()); return result; } @Override public int updateStudent(Student student) { int result = jdbcTemplate.update("update student set stu_name=?,stu_no=?,age=?,stu_message=? where id = ?", student.getStuName(),student.getStuNo(),student.getAge(),student.getStuMessage(),student.getId()); return result; } @Override public int deleteStudentById(Integer id) { int result = jdbcTemplate.update("delete from student where id = ?", id); return result; } //这种查询比较麻烦,要一个一个设值 @Override public List<Student> getAllStudent() { List<Student> list = jdbcTemplate.query("select * from student", new RowMapper<Student>() { @Override public Student mapRow(ResultSet rs, int rowNum) throws SQLException { int id = rs.getInt("id"); String stuName = rs.getString("stu_name"); String stuNo = rs.getString("stu_no"); int age = rs.getInt("age"); String stuMessage = rs.getString("stu_message"); Student student = new Student(); student.setId(id); student.setStuName(stuName); student.setStuNo(stuNo); student.setAge(age); student.setStuMessage(stuMessage); return student; } }); return list; } //这种方式比较方便,但是有一个前提:数据库表的字段和java实体类的属性名要完全一致 //或者数据库表的字段下划线命名方式对应java实体类属性名的驼峰命名方式 @Override public List<Student> getAllStudent2() { List<Student> list = jdbcTemplate.query("select * from student",new BeanPropertyRowMapper<>(Student.class)); return list; } }
2. jdbcTemplate配置多数据源
2.1 pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.5</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.yl</groupId> <artifactId>jdbctemplateutil</artifactId> <version>0.0.1-SNAPSHOT</version> <name>jdbctemplateutil</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
2.2 application.properties
# springboot配置多数据源 spring.datasource.one.username=root spring.datasource.one.password=root spring.datasource.one.jdbcurl=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai spring.datasource.two.username=root spring.datasource.two.password=root spring.datasource.two.jdbcurl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
2.3 实体类
package com.yl.jdbctemplateutil.model; import java.io.Serializable; public class Student implements Serializable { private Integer id; private String stuName; private String stuNo; private Integer age; private String stuMessage; @Override public String toString() { return "Student{" + "id=" + id + ", stuName='" + stuName + '\'' + ", stuNo='" + stuNo + '\'' + ", age=" + age + ", stuMessage='" + stuMessage + '\'' + '}'; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getStuName() { return stuName; } public void setStuName(String stuName) { this.stuName = stuName; } public String getStuNo() { return stuNo; } public void setStuNo(String stuNo) { this.stuNo = stuNo; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getStuMessage() { return stuMessage; } public void setStuMessage(String stuMessage) { this.stuMessage = stuMessage; } }
2.4 数据源配置
package com.yl.jdbctemplateutil.config; import com.zaxxer.hikari.HikariDataSource; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; @Configuration public class DatasourceConfig { @Bean @ConfigurationProperties(prefix = "spring.datasource.one") DataSource dsOne() { return new HikariDataSource(); } @Bean @ConfigurationProperties(prefix = "spring.datasource.two") DataSource dsTwo() { return new HikariDataSource(); } }
2.5 jdbctemplate配置
package com.yl.jdbctemplateutil.config; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.core.JdbcTemplate; import javax.sql.DataSource; @Configuration public class JdbcTemplateConfig { @Bean JdbcTemplate jdbcTemplateOne(@Qualifier("dsOne")DataSource dataSource) { return new JdbcTemplate(dataSource); } @Bean JdbcTemplate jdbcTemplateTwo(@Qualifier("dsTwo")DataSource dataSource) { return new JdbcTemplate(dataSource); } }
2.6 注入模板测试
3. springboot整合mybatis(注解方式)
3.1 pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.5</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.yl</groupId> <artifactId>mybatis</artifactId> <version>0.0.1-SNAPSHOT</version> <name>mybatis</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
3.2 application.properties
# 数据源配置 spring.datasource.username=root spring.datasource.password=root spring.datasource.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
3.3 实体类
package com.yl.mybatis.model; import java.io.Serializable; public class Student implements Serializable { private Integer id; private String stuName; private String stuNo; private Integer age; private String stuMessage; @Override public String toString() { return "Student{" + "id=" + id + ", stuName='" + stuName + '\'' + ", stuNo='" + stuNo + '\'' + ", age=" + age + ", stuMessage='" + stuMessage + '\'' + '}'; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getStuName() { return stuName; } public void setStuName(String stuName) { this.stuName = stuName; } public String getStuNo() { return stuNo; } public void setStuNo(String stuNo) { this.stuNo = stuNo; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getStuMessage() { return stuMessage; } public void setStuMessage(String stuMessage) { this.stuMessage = stuMessage; } }
3.4 mapper
package com.yl.mybatis.mapper; import com.yl.mybatis.model.Student; import org.apache.ibatis.annotations.*; import java.util.List; public interface StudentMapper { @Select("select * from student where id = #{id}") Student getStudentById(Integer id); @Insert("insert into student(stu_name,stu_no,age,stu_message) values(#{stuName},#{stuNo},#{age},#{stuMessage})") //回写id @SelectKey(statement = "select last_insert_id()",keyProperty = "id",before = false,resultType = Integer.class) Integer addStudent(Student student); //表字段和java实体属性映射 @Results({ @Result(property = "stuName",column = "stu_name"), @Result(property = "stuNo",column = "stu_no"), @Result(property = "stuMessage",column = "stu_message") }) @Select("select * from student") List<Student> getAllStudent(); @Delete("delete from student where id = #{id}") Integer deleteById(Integer id); @Update("update student set stu_name = #{stuName},stu_no = #{stuNo},age = #{age},stu_message = #{stuMessage} where id = #{id}") Integer updateByStudent(Student student); }
3.5 service
package com.yl.mybatis.service; import com.yl.mybatis.model.Student; import java.util.List; public interface StudentService { Student getStudentById(Integer id); Integer addStudent(Student student); List<Student> getAllStudent(); Integer deleteById(Integer id); Integer updateById(Student student); }
3.6 srviceImpl
package com.yl.mybatis.service.impl; import com.yl.mybatis.mapper.StudentMapper; import com.yl.mybatis.model.Student; import com.yl.mybatis.service.StudentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class StudentServiceImpl implements StudentService { @Autowired private StudentMapper studentMapper; @Override public Student getStudentById(Integer id) { return studentMapper.getStudentById(id); } @Override public Integer addStudent(Student student) { return studentMapper.addStudent(student); } @Override public List<Student> getAllStudent() { return studentMapper.getAllStudent(); } @Override public Integer deleteById(Integer id) { return studentMapper.deleteById(id); } @Override public Integer updateById(Student student) { return studentMapper.updateByStudent(student); } }
3.7 扫描mapper
3.8 测试
4. springboot整合mybatis(xml方式)
4.1 pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.5</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.yl</groupId> <artifactId>mybatis</artifactId> <version>0.0.1-SNAPSHOT</version> <name>mybatis</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
4.2 application.xml
# 数据源配置 spring.datasource.username=root spring.datasource.password=root spring.datasource.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai # mybatis配置 # 扫描xml文件 mybatis.mapper-locations=classpath:mapper/*.xml
4.3 实体类
package com.yl.mybatis.model; import java.io.Serializable; public class Student implements Serializable { private Integer id; private String stuName; private String stuNo; private Integer age; private String stuMessage; @Override public String toString() { return "Student{" + "id=" + id + ", stuName='" + stuName + '\'' + ", stuNo='" + stuNo + '\'' + ", age=" + age + ", stuMessage='" + stuMessage + '\'' + '}'; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getStuName() { return stuName; } public void setStuName(String stuName) { this.stuName = stuName; } public String getStuNo() { return stuNo; } public void setStuNo(String stuNo) { this.stuNo = stuNo; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getStuMessage() { return stuMessage; } public void setStuMessage(String stuMessage) { this.stuMessage = stuMessage; } }
4.4 mapper
package com.yl.mybatis.mapper; import com.yl.mybatis.model.Student; import java.util.List; public interface StudentMapper { Student getStudentById(Integer id); Integer addStudent(Student student); List<Student> getAllStudent(); Integer deleteById(Integer id); Integer updateById(Student student); }
4.5 mapper.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"> <mapper namespace="com.yl.mybatis.mapper.StudentMapper"> <resultMap id="BaseResultMap" type="com.yl.mybatis.model.Student"> <id property="id" column="id"/> <result property="stuName" column="stu_name"/> <result property="stuNo" column="stu_no"/> <result property="age" column="age"/> <result property="stuMessage" column="stu_message"/> </resultMap> <select id="getStudentById" resultMap="BaseResultMap"> select * from student where id = #{id} </select> <select id="getAllStudent" resultMap="BaseResultMap"> select * from student </select> <!--回写id--> <insert id="addStudent" useGeneratedKeys="true" keyProperty="id"> insert into student(stu_name,stu_no,age,stu_message) values(#{stuName},#{stuNo},#{age},#{stuMessage}) </insert> <delete id="deleteById" parameterType="java.lang.Integer"> delete from student where id = #{id} </delete> <update id="updateById" parameterType="com.yl.mybatis.model.Student"> update student set stu_name=#{stuName},stu_no=#{stuNo},age=#{age},stu_message=#{stuMessage} where id = #{id} </update> </mapper>
4.6 service
package com.yl.mybatis.service; import com.yl.mybatis.model.Student; import java.util.List; public interface StudentService { Student getStudentById(Integer id); Integer addStudent(Student student); List<Student> getAllStudent(); Integer deleteById(Integer id); Integer updateById(Student student); }
4.7 serviceImpl
package com.yl.mybatis.service.impl; import com.yl.mybatis.mapper.StudentMapper; import com.yl.mybatis.model.Student; import com.yl.mybatis.service.StudentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class StudentServiceImpl implements StudentService { @Autowired private StudentMapper studentMapper; @Override public Student getStudentById(Integer id) { return studentMapper.getStudentById(id); } @Override public Integer addStudent(Student student) { return studentMapper.addStudent(student); } @Override public List<Student> getAllStudent() { return studentMapper.getAllStudent(); } @Override public Integer deleteById(Integer id) { return studentMapper.deleteById(id); } @Override public Integer updateById(Student student) { return studentMapper.updateById(student); } }
4.8 扫描mapper
5. mybatis整合多数据源
5.1 pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.5</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.yl</groupId> <artifactId>mybatisutil</artifactId> <version>0.0.1-SNAPSHOT</version> <name>mybatisutil</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> </resource> </resources> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
5.2 application.properties
# 数据源配置 spring.datasource.one.username=root spring.datasource.one.password=root spring.datasource.one.jdbcurl=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai spring.datasource.two.username=root spring.datasource.two.password=root spring.datasource.two.jdbcurl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
5.3 实体类
package com.yl.mybatisutil.model; import java.io.Serializable; public class Student implements Serializable { private Integer id; private String stuName; private String stuNo; private Integer age; private String stuMessage; @Override public String toString() { return "Student{" + "id=" + id + ", stuName='" + stuName + '\'' + ", stuNo='" + stuNo + '\'' + ", age=" + age + ", stuMessage='" + stuMessage + '\'' + '}'; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getStuName() { return stuName; } public void setStuName(String stuName) { this.stuName = stuName; } public String getStuNo() { return stuNo; } public void setStuNo(String stuNo) { this.stuNo = stuNo; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getStuMessage() { return stuMessage; } public void setStuMessage(String stuMessage) { this.stuMessage = stuMessage; } }
5.4 mapper1
package com.yl.mybatisutil.mapper1; import com.yl.mybatisutil.model.Student; import java.util.List; public interface StudentMapper1 { List<Student> getAllStudent(); }
5.5 mapper2
package com.yl.mybatisutil.mapper2; import com.yl.mybatisutil.model.Student; import java.util.List; public interface StudentMapper2 { List<Student> getAllStudent(); }
5.6 mapper1.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"> <mapper namespace="com.yl.mybatisutil.mapper1.StudentMapper1"> <select id="getAllStudent" resultType="com.yl.mybatisutil.model.Student"> select * from student </select> </mapper>
5.7 mapper2.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"> <mapper namespace="com.yl.mybatisutil.mapper2.StudentMapper2"> <select id="getAllStudent" resultType="com.yl.mybatisutil.model.Student"> select * from student </select> </mapper>
5.8 数据源配置
package com.yl.mybatisutil.config; import com.zaxxer.hikari.HikariDataSource; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; /** * 多数据源配置 */ @Configuration public class DataSourceConfig { @Bean @ConfigurationProperties(prefix = "spring.datasource.one") DataSource dsOne() { return new HikariDataSource(); } @Bean @ConfigurationProperties(prefix = "spring.datasource.two") DataSource dsTwo() { return new HikariDataSource(); } }
5.9 mybatis配置1
package com.yl.mybatisutil.config; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; /** * mybatis的配置 */ @Configuration @MapperScan(basePackages = "com.yl.mybatisutil.mapper1",sqlSessionFactoryRef = "sqlSessionFactory1",sqlSessionTemplateRef = "sqlSessionTemplate1") public class MyBatisConfigOne { @Qualifier("dsOne") @Autowired DataSource dataSource; @Bean SqlSessionFactory sqlSessionFactory1() { try { SqlSessionFactory sqlSessionFactory = null; SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource); sqlSessionFactory = sqlSessionFactoryBean.getObject(); return sqlSessionFactory; } catch (Exception e) { e.printStackTrace(); return null; } } @Bean SqlSessionTemplate sqlSessionTemplate1() { return new SqlSessionTemplate(sqlSessionFactory1()); } }
5.10 mybatis配置2
package com.yl.mybatisutil.config; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; /** * mybatis的配置 */ @Configuration @MapperScan(basePackages = "com.yl.mybatisutil.mapper2",sqlSessionFactoryRef = "sqlSessionFactory2",sqlSessionTemplateRef = "sqlSessionTemplate2") public class MyBatisConfigTwo { @Qualifier("dsTwo") @Autowired DataSource dataSource; @Bean SqlSessionFactory sqlSessionFactory2() { try { SqlSessionFactory sqlSessionFactory = null; SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource); sqlSessionFactory = sqlSessionFactoryBean.getObject(); return sqlSessionFactory; } catch (Exception e) { e.printStackTrace(); return null; } } @Bean SqlSessionTemplate sqlSessionTemplate2() { return new SqlSessionTemplate(sqlSessionFactory2()); } }
5.11 项目结构
到此这篇关于springboot整合持久层的方法实现的文章就介绍到这了,更多相关springboot整合持久层内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
赞 (0)