java访问数据库的几种方式
1.原生的jdbc
2.Apache dbutils 比原生的jdbc简单点
3.jpa框架spring-daddtda-jpa ,在复杂查询的时候性能不是很好
4.hibernate框架 ORM框架
5.Mybatis框架 互联网行业通常使用mybatis,半ORM
https://blog.csdn.net/a532672728/article/details/77857056
CREATE TABLE user1 (
id int NOT NULL ,
name varchar(128),
password varchar(16),
phone varchar(16) ,
create_time timestamp,
age int,
PRIMARY KEY (id)
)
create sequence seq_user1_id
increment by 1
start with 1
maxvalue 999999999;
整合完成后运行页面报 ORA-01017: invalid username/password 经过确认是自己写错了:
spring.datasource.data-username=test
spring.datasource.data-password=test
争取如下:
spring.datasource.username=test
spring.datasource.password=test
启动时警告 oracle.jdbc.driver.OracleDriver not found
将DriverClassName以前的oracle.jdbc. driver.OracleDriver 修改成oracle.jdbc.OracleDriver。
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
</dependency>
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:test
spring.datasource.username=test
spring.datasource.password=test
#开启mybatis的日志
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
@MapperScan("com.kevin.autogenproject.mapper")
public class AutogenprojectApplication{
public interface UserMapper {
@Insert("insert into user1(id,name,password,age,create_time)values(seq_user1_id.nextval,#{name},#{password},#{age},#{createTime})")
//@Options(useGeneratedKeys = ture,keyProperty = "id",keyColumn = "user_id") mysql的自增列会用到.user_id指只增列列名
int insert(User user);
@Select("select * from user1")
@Results({
@Result(column = "create_time",property = "createTime")
})
List<User> getAll();
@Select("select * from user1 where id = #{id}")
@Results({
@Result(column = "create_time",property = "createTime")
})
User findById(int id);
@Update("update user1 set name=#{name} where id =#{id}")
void updateUser(User user);
@Delete("delete from user1 where id = #{id}")
void deleteUser(User user);
}
@Service
public class UserServiceImpl implements UserService{
@Autowired
private UserMapper mapper;
@Override
public int addUser(User user)
{
mapper.insert(user);
return user.getId();
}
@Override
@Transactional(propagation = Propagation.REQUIRED,isolation = Isolation.DEFAULT)
public int addAccount(User user) {
mapper.insert(user);
int i=9/0;
return 0;
}
}
@RestController
@RequestMapping("/api/v1/user")
public class UserController {
@Autowired
private UserService servcie;
@Autowired
private UserMapper mapper;
@RequestMapping("/add")
public void addUser()
{
User user = new User();
user.setAge(1);
user.setName("kevin");
user.setPassword("123");
user.setCreateTime(new Date());
servcie.addUser(user);
}
@RequestMapping("/all")
public Object selectAll()
{
return mapper.getAll();
}
@RequestMapping("/one")
public Object selectOne(int id)
{
return mapper.findById(id);
}
@RequestMapping("/update")
public void update(int id, String name)
{
User user = new User();
user.setId(id);
user.setName(name);
mapper.updateUser(user);
System.out.println("update success");
}
@RequestMapping("/delete")
public void delete(int id)
{
User user = new User();
user.setId(id);
mapper.deleteUser(user);
System.out.println("delete success");
}
@RequestMapping("/add_account")
public void addAccount()
{
User user = new User();
user.setAge(1);
user.setName("kevin");
user.setPassword("123");
user.setCreateTime(new Date());
servcie.addAccount(user);
}
}
事务的隔离级别
四种
read committed 大多数数据库的默认事务级别。
事务的传播机制
REQUIRED 最常用
SUPPORTS
MANDATORY
REQUIRES_NEW
NOT_SUPPORTED
NEVER
SpirngBoot中在Service层的方法上添加事务的传播机制 @Transactional(propagation = Propagation.REQUIRED),一般事务的隔离级别时默认的,默认的值指向了数据库的隔离界别。
分享到:
相关推荐
"springboot-plus-v2.7.18.zip"可能包含了对Spring Data JPA和MyBatis的集成,这两种持久层框架都提供了方便的数据访问。Spring Data JPA简化了JPA的操作,而MyBatis则提供了更灵活的SQL映射。 6. **安全控制...
SpringBoot是当下非常流行的一款企业级快速开发框架,它基于Spring框架,旨在简化Spring应用的...同时,理解SpringBoot和Mybatis的集成方式,能够帮助开发者在面对不同的数据持久化需求时,快速选择和实现解决方案。
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解进行配置和原始映射,将接口和 ...
8. **数据持久化**:理解JPA的保存(`save()`)、更新(`saveAndFlush()`)、查询(`findAll()`, `findById()`等)、删除(`deleteById()`)等操作的工作原理,以及事务管理的概念。 这个"springboot-spring-data-...
Mybatis 是一个数据持久化框架,Mybatis-Plus 是对 Mybatis 的增强版本,封装了基本的增删改查操作,使开发者不需要再写很多重复的代码,大大提高了开发效率。 第二部分:创建 Spring Boot 项目 在 IDEA 中创建一...
**SpringBoot2.x入门到项目实战** SpringBoot是由Pivotal团队提供的全新框架,其设计目的是简化Spring应用的初始搭建以及开发过程。SpringBoot通过自动配置、起步依赖和内嵌Servlet容器等方式,使得创建和运行一个...
SpringBoot 是一个由 Pivotal 团队开发的框架,旨在简化 Spring ...这只是一个基础集成,随着需求的增加,你可能需要进一步学习 Redis 的数据结构特性、事务、持久化、集群等方面的知识,以充分利用 Redis 的强大功能。
在本项目中,SpringBoot可能被用来处理HTTP请求,提供RESTful API,以及进行数据持久化。 2. **Spring Data JPA**:这是Spring的一个模块,用于简化数据库访问,提供了基于注解的接口来操作数据库。开发者可以通过...
6.1 使用 GORM 进行数据持久化 ................. 93 2 目 录 6.2 使用 Groovy Server Pages 定义视图 ....... 98 6.3 结合 Spring Boot 与 Grails 3 ................. 100 6.3.1 创建新的 Grails 项目 ..............
在现代Java开发领域,Spring Boot以其便捷的初始化、自动配置和微服务架构等特点,已经成为主流的开发框架。而MyBatis作为一款优秀的持久层框架,以其灵活的SQL映射和易于使用的特性,深受开发者喜爱。本文将详细...
- 如果你的项目包含 `spring-boot-starter-data-jpa`,那么你可以轻松地集成和操作数据库,比如 MySQL、PostgreSQL,使用 JPA 和 Hibernate 进行数据持久化。 7. **RESTful API 设计** - Spring Boot 可以方便地...
2. **框架**:Spring Boot,这是一个简化Spring应用搭建和开发过程的框架,它能够自动配置Spring和第三方库,极大地提高了开发效率。 3. **架构模式**:B/S架构结合MVC模式。B/S(Browser/Server)架构意味着客户端...
2. **SpringBoot**:SpringBoot 基于 Spring 框架,但通过“约定优于配置”的方式,简化了 Spring 应用的初始化和配置。它默认配置了很多常用的功能,比如内嵌的 Tomcat 服务器,自动配置的 Starter 包等。 3. **...
它集成了大量的常用第三方库配置,如数据源、JPA、定时任务等,通过“约定优于配置”的原则,大大减少了项目配置的工作量。 2. **SpringBoot 2.0.3**:这是SpringBoot的一个特定版本,相比早期版本,它引入了更多...
可以通过集成Prometheus或Graphite等第三方工具,将Actuator收集的监控数据持久化,进行长期的趋势分析和报警设置。 总之,Spring Boot 2.0的Actuator是实现微服务监控的重要工具,它提供了丰富的功能,帮助开发者...
2. MyBatis作为ORM数据库持久化框架,配合TkMapper使用 3. 视图解析器采用了thymeleaf 4. 前段UI框架采用BootStrap4.0.0, 配合Layui UI经典模块化前端框架 5. 在线播放器采用CkPlayer6.7 6. 百度多平台分享插件
在本项目中,"13 springboot项目-准备数据和dao类" 主要涉及的是Spring Boot框架中的数据访问层(DAO)设计与实现,以及如何为Spring Boot项目配置和准备必要的资源。首先,我们需要理解Spring Boot是Spring框架的一...
11. **定时任务**:如果系统包含定期体质测试提醒或数据分析功能,可能会使用SpringBoot的定时任务(@Scheduled)或Quartz等第三方库。 综上所述,这款基于Java的SpringBoot大学生体质测试管理系统充分利用了...
《SpringBoot 2与Java 11深度学习教程》 在现代软件开发中,Spring Boot 和 Java 是两个不可或缺的关键技术。Spring Boot 提供了一个快速构建和运行微服务的框架,而Java 11是Oracle推出的长期支持版本,带来了许多...
3. **Spring Data JPA** 或 **MyBatis**:数据持久化框架,用于与数据库进行交互,实现对用户信息、帖子、评论等数据的CRUD操作。 4. **Spring Web MVC**:Spring提供的Web MVC框架,处理HTTP请求,实现业务逻辑与...