使用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"}