通过学习:http://www.cnblogs.com/smyhvae/p/4050825.html(原)
前提要已经安装好数据库
我目前所用的jdbc
https://pan.baidu.com/s/101nv2mgtDF4WlXJmw8dwzA 密码:4f4g
一、下载并解压文件
下载完后解压后的文件
二、新建一个web动态工程
三、新建了一个文件夹(我使用Eclipse是经过汉化的,如果有喜欢中文版或需要汉化的可以自己去查,很简单),将mysql-connector-java-8.0.11直接粘贴进去,至于文件夹的名字,随意取就好了
四、丢进去后点击右键
添加后会多出个引用库
五、链接数据库(博主用的mysql数据库、MySQL Workbench图形化管理工具)
数据库信息:
新建一个类:代码如下:(代码是参照的)
package com.vae.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcTest {
/**
* @param args
*/
//数据库连接地址
private final static String URL = "jdbc:mysql://localhost:3306/new_schema"+"?serverTimezone=GMT%2B8";
//加载的驱动程序类(这个类就在我们导入的jar包中)
public final static String DRIVER = "com.mysql.cj.jdbc.Driver";
//用户名
public final static String USERNAME = "root";
//密码
public final static String PASSWORD = "yulang123";
public static void main(String[] args) {
// TODO Auto-generated method stub
insert();
}
//方法:插入数据
public static void insert(){
try {
//1、加载数据库驱动程序
Class.forName(DRIVER);
//2、获取数据库连接
Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
//3、构造SQL语句(插入具体的数据)
String sql = "insert into person (exercis_id,exercis_name,exercis_address) value(\r\n" +
"2,'陈二','http://www.baidu.com'\r\n" +
")";
//4、构造一个Statement实例(用来发送SQL语句的载体)
Statement state = connection.createStatement();
//5、执行SQL语句(其实是向数据库中发送sql语句)
state.executeUpdate(sql);
//6、关闭连接(释放资源)
state.close();
connection.close();
System.out.println("insert success");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
请注意:在jdbc6.0以上
//数据库连接地址
private final static String URL = "jdbc:mysql://localhost:3306/new_schema"+"?serverTimezone=GMT%2B8";
//加载的驱动程序类(这个类就在我们导入的jar包中)
public final static String DRIVER = "com.mysql.cj.jdbc.Driver";
如果没有
+"?serverTimezone=GMT%2B8"
这句时候会报”The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support”这样的错误
只要添加上就不会报
5.1、然而
com.mysql.cj.jdbc.Driver与com.mysql.jdbc.Driver没有CJ的情况下,也可能会报错,然而至于报什么错。博主这边没有报。所有没办法写
六、 到这来已经可以连接到数据库了。(但为了代码的复用性,我自己手敲了一遍)
新建一个ConclusionJDBC类,代码如下:
package com.vae.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ConclusionJDBC {
// //加载的驱动程序类(这个类就在我们导入的jar包中)
private static Connection connection=null;
//方法:插入数据
public static Connection getMysqlJDBC(){
try {
//1、加载数据库驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
//数据库连接地址
String URL = "jdbc:mysql://localhost:3306/new_schema"+"?serverTimezone=GMT%2B8";
//用户名
String USERNAME = "root";
//密码
String PASSWORD = "yulang123";
//2、获取数据库连接
connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (Exception e) {
e.printStackTrace();
}
return connection;
} //关闭连接(释放资源)
public static void closejdbc(ResultSet resultset,Statement statement,Connection connection) {
try {
if(resultset!=null) {
resultset.close();
}
if(statement!=null) {
statement.close();
}if(connection!=null) {
connection.close();
}
}catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
第二个类:Test类(增改删)
查询数据person的到以下数据
6.1.1 新建一个exercis_id为99 名字为:念壹 地址为https://mp.csdn.net/postedit
package com.vae.jdbc;
import java.sql.Connection;
import java.sql.Statement;
public class Test {
private static Connection connection=null;
public static void main(String[] args) {
// TODO Auto-generated method stub
//构造SQL语句(插入具体的数据)
insert();
}
//增
public static void insert() {
String sql = "insert into person (exercis_id,exercis_name,exercis_address) value(\r\n" +
"99,'念壹','https://mp.csdn.net/postedit')";
connection=ConclusionJDBC.getMysqlJDBC();
try {
//构造一个statementment实例(用来发送SQL语句的载体)
Statement statement=connection.createStatement();
//5、执行SQL语句(其实是向数据库中发送sql语句)
statement.executeUpdate(sql);
statement.execute(sql);
//6、关闭连接(释放资源)
ConclusionJDBC.closejdbc(null, statement, connection);
//通过后台知道程序运行是否成功
System.out.println("运行成功");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
6.2.1将exercis_id为99 名字为:念壹 地址为https://mp.csdn.net/postedit,修改成 101 念贰 地址为:https://www.jd.com/
//改
public static void update() {
String sql="update person set exercis_name=\"念贰\",exercis_address='https://www.jd.com/' where exercis_id=99";
try {
//构造一个statementment实例(用来发送SQL语句的载体)
Statement statement=connection.createStatement();
//5、执行SQL语句(其实是向数据库中发送sql语句)
statement.executeUpdate(sql);
//6、关闭连接(释放资源)
ConclusionJDBC.closejdbc(null, statement, connection);
//通过后台知道程序运行是否成功
System.out.println("运行成功");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
6.3.1exercis_id为99删除
//删除
public static void delete() {
String sql="DELETE FROM person where exercis_id = 99";
try {
//构造一个statementment实例(用来发送SQL语句的载体)
Statement statement=connection.createStatement();
//5、执行SQL语句(其实是向数据库中发送sql语句)
statement.executeUpdate(sql);
//6、关闭连接(释放资源)
ConclusionJDBC.closejdbc(null, statement, connection);
//通过后台知道程序运行是否成功
System.out.println("运行成功");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
6.4.1查询
//查询
public static void select() {
String sql="select * from person";
//构造一个statementment实例(用来发送SQL语句的载体)
try {
Statement statement=connection.createStatement();
//executeQuery,返回结果集
ResultSet resultset=statement.executeQuery(sql);
while(resultset.next()) {
//获取第一行一个信息
int id=resultset.getInt(1);
String name=resultset.getString(2);
String add=resultset.getString(3);
System.out.println("id="+id+",name="+name+",name="+name+",add="+add);
}
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
增删改查已完成学习