Spring Boot 约定大于配置
先在pom.xml文件中添加以下依赖:
<!-- mybatis 框架-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!-- SQLite 驱动 -->
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.21.0.1</version>
</dependency>
添加完依赖后,要将依赖下载,点pom.xml上的悬浮maven图标,idea就会帮我们自动下载了。
等进度条完结后,在application.properties文件中添加spring boot的配置
#配置驱动
spring.datasource.driver-class-name=org.sqlite.JDBC
#配置数据库地址
spring.datasource.url=jdbc:sqlite:C:/Users/Administrator/study_java/sqllite/test.db
只要增加这个2行,spring boot运行时就会帮我们自己连接数据库了,我们就无需关心怎么连接数据库的问题。
java操作数据库
先简单学会用。
在com.example.myFirstMaven包下新建一个dao包和entity包,dao包下新建一个PersonDao接口,entity包新建一个Person类。
/**
* 以查询Person表为例
* #{}符号替代符号。
*/
@Component //将此类交给spring
@Mapper //声明这是一个mybatis访问数据库的接口
public interface PersonDao {
//查询语句
@Select("select * from person")
List<Person> getList();
//插入一条数据
@Insert("insert into person (" +
"id,name,age,nationality) values(" +
"#{id},#{name},#{age},#{nationality})")
void addPerson(Person person);
//删除数据
@Delete("delete from person where id = #{id}")
void deletePerson(Person person);
//更新数据
@Update("update person set age = #{age},nationality=#{nationality} where name=#{name}")
void updatePerson(Person person);
}
/**
* Person实体与表Person的字段必须一一对应
*/
public class Person {
private Integer id;
private String name;
private Integer age;
private String nationality;
...省去了set get toString 方法
}
先修改Person主键id为自动递增
运行
在test包下面的MyFirstMavenApplicationTests,新增几个方法
//依赖注入 spring的主要特性
@Autowired
PersonDao personDao;
@Test
public void getPersonList(){
System.out.println(personDao.getList());
}
@Test
public void addPerson(){
Person person = new Person();
person.setAge(20);
person.setName("小金");
person.setNationality("非洲");
personDao.addPerson(person);
System.out.println(personDao.getList());
}
@Test
public void deletePerson(){
Person person = new Person();
person.setId(10);
personDao.deletePerson(person);
}
@Test
public void updatePerson(){
Person person = new Person();
person.setName("小金");
person.setAge(19);
person.setNationality("美国");
personDao.updatePerson(person);
}
将鼠标移动没方法名上,右键run + 方法名,就可以跑测试方法了。
细节
- spring boot 依赖注入。所有通过给类或着方法添加
@Component注解,此类的生命周期将有spring来管理,有且全局只有一个这样的类。通常我们要使用一个类时,是通过new来获取到类的,但是将类交给spring管理,它会帮我自动创建好,只要通过@Autowired就能自动注入变量中。 - mybatis 注解@Mapper 声明这是一个mybatis访问数据库的接口,mybatis会帮我们自动创建实现类的。@Select查询、 @Insert插入、 @Delete删除、 @Update更新。
- #{},这就告诉 MyBatis 创建一个预处理语句(PreparedStatement)参数,在 JDBC 中,这样的一个参数在 SQL 中会由一个“?”来标识,并被传递到一个新的预处语句中,通过数据库的预编译功能,就能执行sql语句,可以有效的防止sql注入的危险。
- mybaits是基于jdbc的一层封装,大家可以去了解下,如何通过原生的jdbc进行数据库的操作
- 包装类,就是将基本类型看作对象的形式,赋予它更多功能。
基本类型 对应的引用类型
boolean java.lang.Boolean
byte java.lang.Byte
short java.lang.Short
int java.lang.Integer
long java.lang.Long
float java.lang.Float
double java.lang.Double
char java.lang.Character