Spring的jdbc与Hibernate,Mybatis相比较,功能不是特别强大,但是在小型项目中,也到还是比较灵活简单。

首先可以看看一下传统的jdbc是如何操作的呢

传统JDBC

首先呢先要创建一个bean实例,例如Student.java

 public class Student {

     private Integer id;
private String name;
private String password; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} }

为了方便简单,直接在main里面创建数据源的连接了

 import org.apache.commons.dbcp.BasicDataSource;
import org.springframework.jdbc.core.JdbcTemplate; public class TestJdbc { public static void main(String[] args) { //创建数据源连接池
BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/stu?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true");
dataSource.setUsername("root");
dataSource.setPassword("123456"); //创建jdbc模板
JdbcTemplate jdbcTemplate = new JdbcTemplate();
jdbcTemplate.setDataSource(dataSource); //通过api操作执行sql
jdbcTemplate.update("insert into student(stu_name,stu_pwd) values(?,?);", "jack","46asd4634"); } }

因为我这里使用的是mysql8.0,所以驱动名和url有所不一样,可以参考https://www.cnblogs.com/zhangyuanbo/p/11248334.html

以上就是传统的JDBC操作数据库,然后我们用Spring的xml来配置一下,现在用的是DBCP连接池来测试的:

步骤类似,先创建实体类Student.java,然后需要一个StudentDao.java,简单一点,什么接口类实现类Service的,通通不要了,这些做起来应该也不是什么难事吧。

要操作数据库,当然要有CRUD什么的啦,那就整一个update()方法吧

public void update(Student stu) {
String sql = "update student set stu_name=? where stu_id=?";
Object[] pro = {stu.getName(),stu.getId()}; jdbcTemplate.update(sql, pro);
}

我这里是根据Id来执行修改操作的,jdbc模板的方法有很多

我用的是这里红框框的方法,第一个参数很显然啦,意思就是你操作数据库执行的sql语句,第二个就是sql中要传的参数,比如我这里的sql“update student set stu_name=? where stu_id=?”,参数就是stu_name和stu_id。

哦,对了,有一件很重要的事情,可不要忘了JdbcTemplate了,不创建一下,给个setter()方法的话,就会报错的——“jdbcTemplate is not writable or has an anvalid setter method..............”,很明显告诉我们需要一个jdbcTemplate的setter()方法呀,所以完整的StudentDao.java就写成这样:

 import org.springframework.jdbc.core.JdbcTemplate;

 public class StudentDao {

     private JdbcTemplate jdbcTemplate;

     public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
} public void update(Student stu) {
String sql = "update student set stu_name=? where stu_id=?";
Object[] pro = {stu.getName(),stu.getId()}; jdbcTemplate.update(sql, pro);
} }

再整一个bean.xml呗,当然了,实际项目中可不这样命名,一般是“applicationContext.xml”,这里就随意了,怎么简单方便怎么来

在写xml的时候,比如“<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"></bean>”,在class=""这里面按alt+/没有代码提示很烦,像我这样不喜欢敲这么长一串的人来说,特别记忆力又不好,一不小心敲错了,最后报错了呀,找起来也烦。于是,还可以这样来解决:

Windows→Preferences

里面那个红××请忽略,网络代理问题,与这个项目无关。再点“Add”:

注意:外部引用的是你要使用的炸包(jar)对应的“.xsd”格式文件,最后点确定就可以了。效果如下:

有意思吧,方便吧,懒癌患者的福音啊!!!!

咳咳咳,说正事,回到我们的bean.xml的写法

为了好理解,我们就倒着来写吧,以后就顺着写咯

首先肯定要配置Dao的bean

<bean id="studentDao" class="com.yuanbo.xml.StudentDao">
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>

怎么ide里的格式好好地,复制过来就这样了,算了,懒得改了,继续一顿操作

我们把jdbcTemplate注入到这个Dao的bean中,那么,必须要有一个jdbcTemplate的bean撒,

也可以从最开始的传统IDBC可以看到,我们不是new了一个jdbcTemplate嘛,一看到new,那

么,改成xml配置文件形式,得整一个相对应的bean出来撒,于是,吧啦啦啦,整出来了:

 <!--  创建模板,注入数据源 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>

你看吧,现在格式又好好的了,,,,,,emmmm,想起来了,好像是复制的时候没有从定

格复制,少复制了一个“Tab”,算求了,无关紧要,没得啥子强迫症

模板里面必须要注入jdbcTemplate哦,从传统JDBC这里“jdbcTemplate.setDataSource(dataSource);”

有了set方法,就要想到,那得注入了呀不是,注入就等同于set

既然注入了,那不是还缺少一个dataSource呀,这还不洒洒水啊,明显需要再整一个数据源的bean撒,吧啦啦啦啦,小魔仙,全身变!出来吧

<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver "></property>
<property name="url" value="jdbc:mysql://localhost:3306/stu?serverTimezone=GMT%2B8"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>

哦,对了,有一个块选中的快捷键,shift+alt+a,就可以了,其实我还是喜欢代码对齐的,可读性必须高,

写代码的基本准则。再按一下组合键就可以退出当前模式了

这里的url不要在意,mysql8.0的url写法又好几种,这是比较随意的写法

最后看看bean.xml的完整代码:

 <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"> <!-- <context:property-placeholder location="classpath:com/yuanbo/xml/jdbc.properties"/> --> <!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver "></property>
<property name="url" value="jdbc:mysql://localhost:3306/stu?serverTimezone=GMT%2B8"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean> <!-- 创建模板,注入数据源 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean> <!-- 配置Dao -->
<bean id="studentDao" class="com.yuanbo.xml.StudentDao">
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
</beans>

注释的别管,我把数据源里面属性提出来放到.properties文件里,注释掉的这句话就有用了。

最后,来个测试类吧

 import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestDBCP { @Test
public void demo01() {
Student stu = new Student(); String xmlPath = "com/yuanbo/xml/beans.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
StudentDao dao = (StudentDao) applicationContext.getBean("studentDao"); stu.setName("ali");
stu.setId(2);
dao.update(stu); ((ConfigurableApplicationContext)applicationContext).close();
} }

好像还忘记了啥东西,哦,是了,贴上数据库的吧

还有炸包

关于Spring的JDBC连接mysql(与传统jdbc比较)的更多相关文章

  1. 被缠上了,小王问我怎么在 Spring Boot 中使用 JDBC 连接 MySQL

    上次帮小王入了 Spring Boot 的门后,他觉得我这个人和蔼可亲.平易近人,于是隔天小王又微信我说:"二哥,快教教我,怎么在 Spring Boot 项目中使用 JDBC 连接 MyS ...

  2. (45). Spring Boot MyBatis连接Mysql数据库【从零开始学Spring Boot】

    大家在开发的时候,会喜欢jdbcTemplate操作数据库,有喜欢JPA操作数据库的,有喜欢MyBatis操作数据库的,对于这些我个人觉得哪个使用顺手就使用哪个就好了,并没有一定要使用哪个,个人在实际 ...

  3. JDBC连接MySQL数据库代码模板

    下面这个例子是最简单的JDBC连接MySQL数据库的例子. 一般步骤: 1.注册驱动: 2.建立连接: 3.创建语句: 4.处理结果: 5.释放资源. 注意: 1.软件开发环境:MyEclipse 8 ...

  4. JDBC连接MySQL 方法 实例及资料收集

    JDBC连接MySQL 方法 实例及资料收集 准备工作 首先,安装MySQL,配置用户名和密码,创建数据库. 可参见之前的文章: http://www.cnblogs.com/mengdd/p/315 ...

  5. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  6. Crystal Reports 2008(水晶报表) JDBC连接mysql数据库

    在本blog中,主要介绍的是Crystal Reports 2008使用JDBC连接mysql数据库. 在连接之间,首先要确认你电脑上面都安装了mysql数据库. 其次,就是jdbc连接数据时候所使用 ...

  7. 【Java】JDBC连接MySQL

    JDBC连接MySQL 虽然在项目中通常用ORM的框架实现持久化.但经常因测试某些技术的需要,要写一个完整的JDBC查询数据库.写一个在这儿备份. 首先引入驱动包: <dependencies& ...

  8. JDBC连接MySQL数据库及演示样例

    JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  9. JDBC连接MySQL数据库及示例

      JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一 ...

  10. JAVA使用jdbc连接MYSQL简单示例

    以下展示的为JAVA使用jdbc连接MYSQL简单示例: import java.sql.DriverManager; import java.sql.ResultSet; import java.s ...

随机推荐

  1. hive Metastore contains multiple versions

    凌晨接到hive作业异常,hive版本为1.2.1,hadoop版本apache 2.7.1,元数据存储在mysql中,异常信息如下: Logging initialized using config ...

  2. 一文详解 LVS、Nginx 及 HAProxy 工作原理( 附大图 )

    当前大多数的互联网系统都使用了服务器集群技术,集群是将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是 Web 应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器 ...

  3. Python自学day-6

    一.编程范式       编程:程序员用特定的语法.数据结构和算法告诉计算机如何执行任务的过程.实现任务有很多不同的方式,根据编程方式的特点进行归纳总结出来的编程方式类别,就叫编程范式.大多数语言只支 ...

  4. Logback详细整理,基于springboot的日志配置

    Logback的配置介绍: 1.Logger.appender及layout Logger作为日志的记录器,把它关联到应用的对应的context上后,主要用于存放日志对象,也可以定义日志类型.级别. ...

  5. Java多线程学习(吐血超详细总结)

    Java多线程学习(吐血超详细总结) 林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 写在前面的话:此文只能说是java多线程的一个入门,其实 ...

  6. System.in 获取键盘输入

    此处说明 两种使用System.in获取键盘输入的两种方法,分别是Scanner 和 InputStreamReader. 其中System.in 在System类中的定义如下: package co ...

  7. PCA(主成分分析)算法

    设有\(m\)个指标,\(n\)个样本的原始数据 将原始数据按列组成矩阵 \(X _ { n \times m }\) 将\(X\) 的每一列进行中心化 求\(X\)的协方差矩阵\(\Sigma _ ...

  8. 微服务-springboot+websocket在线聊天室

    一.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  9. C# 获取计算机相关信息

    整理了一个关于计算机相关系统的资料 需要引入命名空间: 1. 在'解决方案资源管理器' 窗口中->右击项目-> '添加' -> '引用' 弹出引用管理器 2. 在引用处理器中,程序集 ...

  10. Linux命令学习-tar命令

    Linux中,tar命令的全称是tape archive,主要作用是压缩和解压文件. 参数说明: -c 创建新的压缩档案 -x 解压档案 -t 列出压缩档案的内容 -z 使用gzip来解压和压缩,文件 ...