微信小程序+Servlet后台开发(二)


上一篇博文 https://blog.csdn.net/qq_39337332/article/details/86775322已经实现了微信小程序和本地Servlet程序之间的通信,为了方便数据管理,需要将数据存至数据库。这里用到的主要工具就是JDBC,数据库选择使用MYSQL。与之前一样,环境为windows。

Mysql

Mysql简介和安装

Mysql的windows版安装就不再赘述了,要注意保存好安装时设置的用户名和密码,JDBC连接时需要用到。

idea连接Mysql

idea连接Mysql也是很方便简单的。具体的连接方法可以借鉴百度经验上的做法,网址如下:

https://jingyan.baidu.com/article/2d5afd6923328b85a2e28e0b.html

JDBC

JDBC简介

JDBC实际上是Java和数据库的中间层,它对Java提供了API接口,对数据库提供了驱动工具。通过JDBC可以很方便的驱动几乎各种类型的数据库。简单来说,JDBC可做三件事:与数据库建立连接,发送SQL语句并处理结果。
JDBC类库是Java平台的一部分,3.0主要分为两个包:java.sql和javax.sql。这两个包都包含在J2SE(Java桌面版)和J2EE(Java企业版)之中。但是由于Servlet服务只包含在J2EE中,因此下载Java和Interllij时要注意选择企业版。JDBC操作中常用嗯对类和接口可分为以下7种,分别是:

  • 数据库建立连接
  • 数据库传递SQL语句
  • 检索和更新查询的记录集
  • 建立数据源连接时以DataSource接口代替DriverManager
  • 连接池
  • 分布式事务处理
  • 行记录集

前三种已经可以满足基本的需求了,下面分点记录一下。

idea连接JDBC

首先在Mysql官网下载Mysql connector for Java(Connector/J),网址连接是https://dev.mysql.com/downloads/connector/j/。选择操作系统为平台无关性
下载.zip版本即可,方便idea建立连接。

导入jar包

下载后解压可以得到JDBC connector的jar包,在idea内部通过Project Structure导入即可。
在这里插入图片描述
选择Modules项卡,点击右面的加号,根据相应的路径导入jar包。导入完后注意要勾选驱动文件,否则工程将不会应用。
在这里插入图片描述
注意还要将jar复制一份放进tomcat的lib目录下,否则tomcat会找不到jar包而报java.lang.ClassNotFoundException: com.mysql.jdbc.Driver错误。

数据库连接

类原型

由于有了JDBC的大量底层高质量代码的帮助,原本让开发人员头疼的数据库连接,变成了一件非常容易的事情。连接各种数据库都可以用以下两步完成:

  • 加载注册驱动程序
  • 取得对数据库的连接

以上两步用Java代码表示就是:

//加载注册驱动程序
Class.forName( "yourdriver" );
//取得对数据库的连接
connection = DriverManager.getConnection( URL );

该语句加载驱动程序,并创建该类的一个实例。此时要连接一个特定的数据库,必须创建一个Connection类的实例,并使用URL语法连接数据库。URL语法可能因为数据库类型的不同由很大的变化。例如下面的形式:

jdbc: subprotocol: subname

第一组字符表示连接协议,并且始终是JDBC。还可能有一个子协议,例如ODBC。它规定了一类数据库的连通性机制。并且开发者要连接其他机器上的数据库服务器,可能也要指定该机器和一个子目录,例如:

jdbc:bark//doggie/elliott

最后,可能要指定用户名和口令,作为连接字符串的一部分,例如:

jdbc:bark//doggie/elliot;UID=GoodDog;PWD=woof

这样就可以得到某种数据库的连接,有了这个连接,就有了操作数据库的源头,这样就可以在此基础上,通过Statement、PreparedStatement、ResultSet等对象,完成SQL语句的传递、查询和修改记录等操作。

下面着重记录一下Mysql的JDBC URL语法。
标准语法:

<protocol(主要通讯协议)>:<subprotocol(次要通讯协议,即驱动程序名称)>:<data source identifier(数据源)>

Mysql的JDBC URL格式:

jdbc:mysql//[hostname][:port]/[dbname][?param1=value1][&param2=value2]….

示例

jdbc:mysql://localhost:3306/sample_db?user=root&password=your_password

常见参数:

参数 含义
user 用户名
password 密码
autoReconnect 联机失败,是否重新联机(true/false)
maxReconnect 尝试重新联机次数
initialTimeout 尝试重新联机间隔
maxRows 传回最大行数
useUnicode 是否使用Unicode字体编码(true/false)
characterEncoding 何种编码(GB2312/UTF-8/…)
relaxAutocommit 是否自动提交(true/false)
capitalizeTypeNames 数据定义的名称以大写表示

数据库连接Demo

接下来看一段Demo,该Demo连接本地的数据库,并返回成功信息。

String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/yourarchive?user=yourusername&password=yourpswd";
try {
    Class.forName(driver);
    Connection connection = DriverManager.getConnection( url );
} catch (ClassNotFoundException | SQLException e) {
    e.printStackTrace();
}

如果运行程序后没有报错,就说明idea与MySQL已经连接成功了。

数据库操作

上面我们已经通过JDBC获得了数据库的连接,而拥有数据库连接,就获得了操作数据库的权限。例如如下Demo:

//获得连接
Connection con = DriverManager.getConnection("url");
//获得Statement
Statement stmt = con.createStatement();
//执行SQL语句获得结果集
ResultSet rs = stmt.executeQuery("xxxx");
遍历结果集,得到数据
while(rs.next()){
	int x = rs.getInt("a");
	String s = rs.getString("b");
	float f = rs.getFloat("c");
}

以上就是JDBC操纵数据库的基本流程,也是JDBC首要解决的问题,它代表性地展示了如何在Java程序中获取相关数据库的信息,并保存到程序的变量中,其基本过程如下所示:

产生
回收
产生
回收
Connection
Statement
ResultSet

数据库的操作也就是不同的sql命令即可。

猜你喜欢

转载自blog.csdn.net/qq_39337332/article/details/86797332