使用JDBC
第一步:添加依赖
上一篇中说到很多关于添加依赖后如何进行reimport
这里就不在多重复了
<!-- JDBC -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
application.properties配置
在resources
文件下新建一个名为application.properties
的file文件
# 配置数据jdbc
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/spring
spring.datasource.username=root
spring.datasource.password=******
service
一如往常,还是创建service的接口并实现这个接口
Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。
JdbcTemplate位于Spring-jdbc-4.3.0.RELEASE.jar
中。其全限定命名为org.springframework.jdbc.core.JdbcTemplate。要使用JdbcTemlate还需一个这个包包含了一下事务和异常控制,在这里我们先不说事物和异常控制
JdbcTemplate
主要提供了以下5类方法
execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;
update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;
query方法及queryForXXX方法:用于执行查询相关语句;
call方法:用于执行存储过程、函数相关语句。
@Service
public class UserServiceImpl implements UserService{
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void register(String username, String password) {
String sql = "insert into user (userName,password) value(?,?)";
jdbcTemplate.update(sql,username,password);
}
}
Controller
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
UserService userService;
@RequestMapping("/register")
@ResponseBody
public String register(String username,String password){
userService.register(username,password);
return "Success";
}
}
访问http://localhost:8080/user/register?username=zhangsan&password=123456
后成功则会出现Success
,查看数据库会多出刚刚插入的信息
整合Mybatis
方式一
在创建UserMapper接口,用注解方式操作数据库
public interface UserMapper {
@Insert("insert user (username,password) values (#{username},#{password})")
public void save(@Param("username") String username, @Param("password") String password);
@Select("select from user where username=#{username,jdbcType=VARCHAR}")
public User findByUserName(@Param("username") String username);
}
方式二
学过mybatis的都知道,使用mybatis都是xml
配置数据库操作,以下是我的xml配置文件
<mapper namespace="com.lxk.mapper.UserMapper">
<insert id="save">
insert into user (username,password) values (#{arg0},#{arg1})
</insert>
<select id="findByUserName" resultType="com.lxk.model.User" parameterType="String">
select *from user where username=#{username,jdbcType=VARCHAR}
</select>
</mapper>
当然有了配置文件,我们就需要去掉UserMapper类中的注解
public interface UserMapper {
public void save(String username,String password);
public User findByUserName(String username);
}
当然,如果你也把Spring学过了,你那应该知道,我们使用注解是为了取代少xml文件,因此,这里的两种方式其实是很简单不是吗?
创建Service
同样创建UserService
接口和UserServiceImpl
实现类
public interface UserService {
public void insert(String username, String password);
public User select(String username);
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public void insert(String username, String password) {
System.out.println(username+"-"+password);
userMapper.save(username,password);
}
@Override
public User select(String username) {
User user = userMapper.findByUserName(username);
return user;
}
}
创建Controller
@Controller
@RequestMapping("user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/save")
@ResponseBody
public String save(String username,String password){
userService.insert(username,password);
return "Save success";
}
@RequestMapping("find")
@ResponseBody
public User findByUserName(String username){
User user = userService.select(username);
return user;
}
}
启动App
启动App类
@EnableAutoConfiguration
@ComponentScan(basePackages = {"com.lxk.web","com.lxk.service"})
@MapperScan(basePackages = {"com.lxk.mapper"})
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
}
访问http://localhost:8080/user/save?username=zhangsan&password=123456
,出现Save success
则是成功,然后查看数据库中是否存在插入的那条
访问http://localhost:8080/user/find?username=zhagnsan
时,
出现{"username":"zhangsan","password":"123456"}