SpringBoot访问数据库
1.SpringBoot使用JDBC
创建项目
创建数据库表
#用户基本信息表
create table t_user(
user_id int primary key auto_increment,
user_name varchar(20),
user_age int,
user_address varchar(30)
);
创建javaBean
package com.wangxing.springboot.bean;
public class UserBean {
private int userid;
private String username;
private int userage;
private String useraddress;
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getUserage() {
return userage;
}
public void setUserage(int userage) {
this.userage = userage;
}
public String getUseraddress() {
return useraddress;
}
public void setUseraddress(String useraddress) {
this.useraddress = useraddress;
}
}
配置数据源application.properties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/lianxi?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
注意:在springboot2.0以上的版本中,mysql-connector-java用的6.0以上的版本,需要将原来的com.mysql.jdbc.Driver换成com.mysql.cj.jdbc.Driver
创建数据访问接口及其实现类
package com.wangxing.springboot.dao;
import com.wangxing.springboot.bean.UserBean;
import java.util.List;
import java.util.Map;
public interface UserBeanDao {
void insertuser(UserBean userBean);
void updateuser(UserBean userBean);
void deleteuser(int userid);
Map<String,Object> selectbyid(int userid);
List<Map<String,Object>> selectuser();
}
package com.wangxing.springboot.dao.Impl;
import com.wangxing.springboot.bean.UserBean;
import com.wangxing.springboot.dao.UserBeanDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Repository("userBeanDao")
public class UserBeanDaoImpl implements UserBeanDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void insertuser(UserBean userBean) {
String insertsql="insert into t_user values(null,?,?,?)";
Object parms[]={userBean.getUsername(),userBean.getUserage(),userBean.getUseraddress()};
int temp=jdbcTemplate.update(insertsql,parms);
}
@Override
public void updateuser(UserBean userBean) {
String updatesql="update t_user set user_name=?,user_age=?,user_address=?where user_id=?";
Object parms[]={userBean.getUsername(),userBean.getUserage(),userBean.getUseraddress(),userBean.getUserid()};
int temp=jdbcTemplate.update(updatesql,parms);
}
@Override
public void deleteuser(int userid) {
String delete="delete from t_user where user_id=?";
int temp=jdbcTemplate.update(delete,userid);
}
@Override
public Map<String, Object> selectbyid(int userid) {
String select="select * from t_user where user_id=?";
return jdbcTemplate.queryForMap(select,userid);
}
@Override
public List<Map<String, Object>> selectuser() {
String select="select * from t_user";
return jdbcTemplate.queryForList(select);
}
}
创建业务访问接口及其实现类
package com.wangxing.springboot.service;
import com.wangxing.springboot.bean.UserBean;
import java.util.List;
import java.util.Map;
public interface UserBeanService {
void insertuser(UserBean userBean);
void updateuser(UserBean userBean);
void deleteuser(int userid);
UserBean selectbyid(int userid);
List<Map<String,Object>> selectuser();
}
package com.wangxing.springboot.service.Impl;
import com.wangxing.springboot.bean.UserBean;
import com.wangxing.springboot.dao.UserBeanDao;
import com.wangxing.springboot.service.UserBeanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.List;
import java.util.Map;
@Service("userBeanService")
public class UserBeanServiceImpl implements UserBeanService {
@Autowired
private UserBeanDao userBeanDao;
@Override
public void insertuser(UserBean userBean) {
userBeanDao.insertuser(userBean);
}
@Override
public void updateuser(UserBean userBean) {
userBeanDao.updateuser(userBean);
}
@Override
public void deleteuser(int userid) {
userBeanDao.deleteuser(userid);
}
@Override
public UserBean selectbyid(int userid) {
Map<String,Object> usermap=userBeanDao.selectbyid(userid);
UserBean userBean=new UserBean();
userBean.setUserid((Integer)usermap.get("user_id"));
userBean.setUsername((String)usermap.get("user_name"));
userBean.setUserage((Integer)usermap.get("user_age"));
userBean.setUseraddress((String)usermap.get("user_address"));
return userBean;
}
@Override
public List<Map<String, Object>> selectuser() {
return userBeanDao.selectuser();
}
}
创建控制器
package com.wangxing.springboot.controller;
import com.wangxing.springboot.bean.UserBean;
import com.wangxing.springboot.service.UserBeanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
import java.util.Map;
@Controller
public class UserBeanController {
@Autowired
private UserBeanService userBeanService;
@RequestMapping("/add")
@ResponseBody
public String get(){
try{
UserBean userBean=new UserBean();
userBean.setUsername("张三");
userBean.setUserage(18);
userBean.setUseraddress("西安");
userBeanService.insertuser(userBean);
return "添加成功";
}catch (Exception e){
e.printStackTrace();
return "添加失败";
}
}
@RequestMapping("/update")
@ResponseBody
public String updatr(){
try{
UserBean userBean=new UserBean();
userBean.setUserid(2);
userBean.setUsername("李四");
userBean.setUserage(100);
userBean.setUseraddress("北京");
userBeanService.updateuser(userBean);
return "修改成功";
}catch (Exception e){
e.printStackTrace();
return "添加失败";
}
}
@RequestMapping("/selectbyid")
@ResponseBody
public UserBean finbyid(){
try{
return userBeanService.selectbyid(2);
}catch (Exception e){
e.printStackTrace();
return null;
}
}
@RequestMapping("/select")
@ResponseBody
public List<Map<String,Object>> find(){
try{
return userBeanService.selectuser();
}catch (Exception e){
e.printStackTrace();
return null;
}
}
@RequestMapping(value = "/delete")
@ResponseBody
public String delete(){
try{
userBeanService.deleteuser(3);
return "删除成功";
}catch (Exception e){
e.printStackTrace();
return"删除失败";
}
}
}
2.SpringBoot使用MyBatis
创建数据库表
#用户基本信息表
create table t_user(
user_id int primary key auto_increment,
user_name varchar(20),
user_age int,
user_address varchar(30)
);
创建javaBean
package com.wangxing.springboot.bean;
public class UserBean {
private int userid;
private String username;
private int userage;
private String useraddress;
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getUserage() {
return userage;
}
public void setUserage(int userage) {
this.userage = userage;
}
public String getUseraddress() {
return useraddress;
}
public void setUseraddress(String useraddress) {
this.useraddress = useraddress;
}
}
配置数据源application.properties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/lianxi?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
注意:在springboot2.0以上的版本中,mysql-connector-java用的6.0以上的版本,需要将原来的com.mysql.jdbc.Driver换成com.mysql.cj.jdbc.Driver
创建druid数据源配置类
package com.wangxing.springboot.config;
import com.alibaba.druid.pool.DruidDataSource;
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 DruidConfig {
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource druid(){
return new DruidDataSource();
}
}
修改数据源配置application.properties
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=true
创建数据访问接口
<?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.wangxing.springboot.mapper.UserBeanMapper">
<insert id="insertUserBean" parameterType="com.wangxing.springboot.bean.UserBean">
insert into t_user value(null,#{username},#{userage},#{useraddress})
</insert>
<update id="updataUserBean"
parameterType="com.wangxing.springboot.bean.UserBean">
update t_user set user_name=#{username},user_age=#{userage},user_address=#{useraddress}where user_id=#{userid}
</update>
<delete id="deleUserBeanByid" parameterType="int">
delete from t_user where user_id=#{userid}
</delete>
<resultMap id="userMap" type="com.wangxing.springboot.bean.UserBean">
<id property="userid" column="user_id"></id>
<result property="username" column="user_name"></result>
<result property="userage" column="user_age"></result>
<result property="useraddress" column="user_address"></result>
</resultMap>
<select id="selectBeanByid" parameterType="int" resultMap="userMap">
select * from t_user where user_id=#{userid}
</select>
<select id="selectUserBean" resultMap="userMap">
select * from t_user
</select>
</mapper>
创建MyBatis的配置类
package com.wangxing.springboot.config;
import org.mybatis.spring.annotation.MapperScan;
import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@MapperScan("com.wangxing.springboot.mapper")
@Configuration
public class MyBatisConfig {
@Bean
public ConfigurationCustomizer configurationCustomizer(){
return new ConfigurationCustomizer(){
@Override
public void customize(org.apache.ibatis.session.Configuration configuration) {
configuration.setMapUnderscoreToCamelCase(true);
}
};
}
}
在application.properties中配置MyBatis核心配置文件【mybaits-config.xml】和sql映射文件的位置
核心配置文件【mybaits-config.xml】的位置
mybatis.config-location=classpath:config/mybatis-configxml
sql映射文件的位置
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
创建业务访问接口及其实现类
package com.wangxing.springboot.service.Impl;
import com.wangxing.springboot.bean.UserBean;
import com.wangxing.springboot.mapper.UserBeanMapper;
import com.wangxing.springboot.service.UserBeanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("userBeanService")
public class UserServiceImpl implements UserBeanService {
@Autowired
private UserBeanMapper userBeanMapper;
@Override
public void insertUserBean(UserBean userBean) {
userBeanMapper.insertUserBean(userBean);
}
@Override
public void updateUserBean(UserBean userBean) {
userBeanMapper.updataUserBean(userBean);
}
@Override
public void deleteUserBean(int userid) {
userBeanMapper.deleUserBeanByid(userid);
}
@Override
public UserBean selectUserBeanByid(int userid) {
return userBeanMapper.selectBeanByid(userid);
}
@Override
public List<UserBean> selectUserBean() {
return userBeanMapper.selectUserBean();
}
}
package com.wangxing.springboot.service;
import com.wangxing.springboot.bean.UserBean;
import java.util.List;
public interface UserBeanService {
void insertUserBean(UserBean userBean);
void updateUserBean(UserBean userBean);
void deleteUserBean(int userid);
UserBean selectUserBeanByid(int userid);
List<UserBean>selectUserBean();
}
创建控制器
package com.wangxing.springboot.controller;
import com.wangxing.springboot.bean.UserBean;
import com.wangxing.springboot.service.UserBeanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
public class UserBeanController {
@Autowired
private UserBeanService userBeanService;
@RequestMapping("/add")
@ResponseBody
public String adduser() {
try {
UserBean userBean = new UserBean();
userBean.setUsername("张三");
userBean.setUserage(18);
userBean.setUseraddress("北京");
userBeanService.insertUserBean(userBean);
return "添加成功";
} catch (Exception e) {
e.printStackTrace();
return "添加失败";
}
}
@RequestMapping("/update")
@ResponseBody
public String updatr() {
try {
UserBean userBean = new UserBean();
userBean.setUserid(1);
userBean.setUsername("李四");
userBean.setUserage(18);
userBean.setUseraddress("西安");
userBeanService.updateUserBean(userBean);
return "修改成功";
}catch (Exception e){
e.printStackTrace();
return "修改失败";
}
}
@RequestMapping("/selectbyid")
@ResponseBody
public UserBean selectbyid(){
try{
return userBeanService.selectUserBeanByid(1);
}catch (Exception e){
e.printStackTrace();
return null;
}
}
@RequestMapping("/select")
@ResponseBody
public List<UserBean> select() {
try {
return userBeanService.selectUserBean();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@RequestMapping("/delete")
@ResponseBody
public String delete(){
try{
userBeanService.deleteUserBean(1);
return "删除成功";
}catch (Exception e){
e.printStackTrace();
return "删除失败";
}
}
}