user表中全部字段名
id,username,password,sex,profession,favourite,note,type
总共可以分为7个步骤进行:
1.导入sql包
import java.sql.*;
2.加载数据库驱动程序(利用class类的静态方法forName加载,不同的数据库需要加载不同的驱动,这里我以mysql为例)
加载Oracle JDBC驱动:Class.forName(“oracle.jdbc.driver.OracleDriver”);
加载MS SQLServer驱动:Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);
需要注意的是:括号里的参数是固定的,注意大小写
方法一:Class.forName("com.mysql.jdbc.Driver");
注意:导入的jar包版本比较高的话请这样写:Class.forName(“com.mysql.cj.jdbc.Driver”);
方法二:String classname = "com.mysql.jdbc.Driver";
class.forName(classname);
注意:版本过高应当这样写:同方法一中,添加".cj"。
3.连接数据库(利用DriverManager类的getConnection方法获取数据库连接对象)
String url = "jdbc:mysql://localhost:3306/testdb?setCharacterEncoding=utf-8";
String user = "root";
String password = "root";
Connection connection = DriverManager.getConnection(url,user,password);
注意:url是指数据库连接的地址,user是数据库用户名,password是指登录数据库的密码
4.创建Mysql命令对象(调用connection对象的createStatement方法创建一个Statement类的对象statement)
Statement statement = connection.createStatement();
5.发送sql命令去数据库(这里阿伟随便写了一个,可自行更改)
String sql = "insert user(username,password,sex,profession,favourite,note)";
sql += "values('"+username+"','"+password+"','"+sex+"','"+profession;
sql += "','"+favourite+"','"+note+"')";
注意:当一行代码看起来很冗长的时候,我们可以进行换行写,用"+="进行连接
6.处理结果(调用statement对象的executeQuery方法或者executeUpdate方法)
ResultSet result = statement.executeUpdate(sql);//这里我调用的是executeUpdate方法
if(result >= 0){
out.print("执行成功");
}else{
out.print("执行失败");
}
/*
Result对象常用方法:next()方法和getString()方法
知识点补充:
next()方法:将指针移动至下一行。最初指针是没有指向任何记录的
getString()方法:可以获取所有的列值,不过获取到的值都是字符串类型
*/
7.关闭数据库(一般是从后往前关闭)
if(result != null){
result.close();
}
if(statement != null){
statement.close();
}
if(connection != null){
connection.close();
}
Ps:附上jar包(数据库与java连接的工具),相当于是一个类。对应不同版本下载对应的即可
mysql-connector-java 8.0.14版本:
下载地址:https://pan.baidu.com/s/1kskQzQsj0Kmv3cknCJ2x1A 提取码:d9pi
mysql-connector-java 5.0.17版本:
下载地址:https://pan.baidu.com/s/1PIUVbt8iNL1vS5onmW91yA 提取码:e8dz
注意:该jar包需要拷贝到WebContent/WEB-INF/lib目录中
该程序是最基本的数据库连接,在某些细节上还可以继续进行优化(异常处理),下一篇我将会对程序进行优化,我们下期再见!