写在前面
这一整套包括springboot项目的创建,Oracle数据库连接,多数据源配置,layui数据表格展示,Ajax数据的前后端交互暂时先写这么多吧。
1.springboot项目创建
1.直接上图片
直接下一步,其中的dependencies暂时什么都不选,后面自己添加
- 现在的项目就是这个样子了
- 建立好的模型是这个样子的
- 先配置maven文件,file—>setting---->输入maven
到这里项目就建好了
2.Oracle数据库的连接
-
先在数据库里创一个测试类
-
现在写properties文件,也可以是yml文件,我习惯写properties文件
-
pom文件 先添加这两个就可以了
-
如果ojdbc.jar导入爆红的话,看看这篇博客
手动导入Oracle驱动,我之前写的 -
先来简单测试一下是否可以连接到Oracle数据库
在test下见一个Oracleconnection类
public static Connection getConnection(){
String url="jdbc:oracle:thin:@这里自己要配置好:orcl";
String username="自己写";
String password="自己写";
String driver="oracle.jdbc.driver.OracleDriver";
try {
Class.forName(driver);
Connection con= DriverManager.getConnection(url, username, password);
Statement state=con.createStatement(); //容器
String sql="select * from user_test"; //SQL语句
ResultSet resultSet= state.executeQuery(sql); //将sql语句上传至数据库执行
while (resultSet.next()){
System.out.println(resultSet.getString(1)+"--"+resultSet.getString(2));
}
con.close();//关闭通道
return con;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
Connection conn=OracleConnection.getConnection();
}
运行测试结果如图
3.先写一套mvc
###3.1直接上代码
domain 下的User类
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
mapper UserMapper
@Repository
public interface UserMapper {
List<User> getAll();
}
service UserService 以及UserServiceImpl
UserService:
public interface UserService {
List<User> getAll();
}
UserServiecImpl:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> getAll() {
return userMapper.getAll();
}
}
controller UserController
/**这个RequesetMapping和RestController需要在pom导入一个文件
我为了省麻烦就在这将这个文件写在这,你自己添加到pom文件中
<!--web 对应的是RequestMapping等jar包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
**/
@RequestMapping("/test")
@RestController
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/getAll")
private List<User> getAll(){
List<User> users=userService.getAll();
//将查询到的集合遍历一下
for (User u:users){
System.out.println("username:"+u.getUsername()+"_______password:"+u.getPassword());
}
return users;
}
}
到这里一套mvc就写完了,现在来配置数据源和UserMapper.xml文件,现在的druid还没用,我是直接上代码了:
pom文件 全贴出来了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!--以下是我添加的-->
<!--Oracle-->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.1.0</version>
</dependency>
<!--引入Spring封装的jdbc-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--web 对应的是RequestMapping等jar包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- alibaba的druid数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
druid OracleDataSourceProperties
/**
这里prefix="spring.datasource.oracle",是properties文件中配置的主数据源前缀
这样就可以获取数据了
**/
@Component
@ConfigurationProperties(prefix = "spring.datasource.oracle")
public class OracleDataSourceProperties {
private String url;
private String username;
private String password;
private String driverClassName;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getDriverClassName() {
return driverClassName;
}
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
}
druid OracleDataSourceConfig 这个十分重要,一定不能出错,还是贴一张图片吧,就怕出错了
/**这是一个OracleDataSourceConfig **/
@Configuration
@MapperScan(basePackages = OracleDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "oracleSqlSessionFactory")
public class OracleDataSourceConfig {
//你的mapper位置,会自动扫描,这也就是自动装配的好处了
static final String PACKAGE = "com.example.demo.mapper";
//你的mapper.xml位置
static final String MAPPER_LOCATION = "classpath:oracleMapper/*.xml";
@Autowired
private OracleDataSourceProperties config;
@Bean(name = "oracleDataSource")
@Primary
public DataSource oracleDataSource() throws Exception{
Properties properties = new Properties();
properties.put("driverClassName", config.getDriverClassName());
properties.put("url", config.getUrl());
properties.put("username", config.getUsername());
properties.put("password", config.getPassword());
//其实还有很多配置,但是只是做这个简单用不上我就没配置
//#申请连接时,空闲时间大于(timeBetweenEvictionRunsMillis),则检测连接的有效性 true
properties.put("testWhileIdle", "true");
//#申请连接时,检测连接的有效性(性能损耗) false
properties.put("testOnBorrow", "false");
//#归还连接时,检测连接的有效性(性能损耗) false
properties.put("testOnReturn", "false");
return DruidDataSourceFactory.createDataSource(properties);
}
@Bean(name = "oracleTransactionManager")
@Primary
public DataSourceTransactionManager oracleTransactionManager()throws Exception{
return new DataSourceTransactionManager(oracleDataSource());
}
@Bean(name = "oracleSqlSessionFactory")
@Primary
public SqlSessionFactory oracleSqlSessionFactory(@Qualifier("oracleDataSource") DataSource oracleDataSource) throws Exception{
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(oracleDataSource);
//使mybatis分页起作用,这里的分页是为了后面页面显示的
// PageHelper pageHelper = new PageHelper();
Properties p = new Properties();
p.setProperty("offsetAsPageNum", "true");
p.setProperty("rowBoundsWithCount", "true");
p.setProperty("reasonable", "true");
// p.setProperty("dialect", "oracle");
//5.1.2版本的pagehelper
Interceptor interceptor = new PageInterceptor();
interceptor.setProperties(p);
Interceptor[] plugins = new Interceptor[]{interceptor};
sessionFactory.setPlugins(plugins);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(OracleDataSourceConfig.MAPPER_LOCATION));
return sessionFactory.getObject();
}
}
如果你还想,配置其他数据源,同样在druid下建立这两个文件,一定要配置好
好了,贴一下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.example.demo.mapper.UserMapper">
<resultMap id="BaseResultMap" type="com.example.demo.domain.User">
<result column="USERNAME" property="username" jdbcType="VARCHAR"/> <!--username-->
<result column="PASSWORD" property="password" jdbcType="VARCHAR" /> <!--password-->
</resultMap>
<!--获取上传信息-->
<select id="getAll" resultMap="BaseResultMap">
select * from user_test t
</select>
</mapper>
到这我们就可以测一下controller了看看,能不能的到
输入
localhost:9090/test/getAll
到这就结束吧,本来还想写前端数据展示的,没想到这么麻烦,下次有时间再写了。
转发请备注出处:https://blog.csdn.net/y_yanghao/article/details/104669909
有什么问题可以留言