1.了解jdbc概念
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种 关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建 更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。
2.java数据库连接
Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何 来访问数据库的[应用程序接口](,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。
3. JDBC API访问与执行流程
JDBC API 允许用户访问任何形式的表格数据,尤其是存储在关系数据库中的数据。
执行流程: 连接数据源,如:数据库。
为数据库传递查询和更新指令。
处理数据库响应并返回的结果。
pom.xml 中配置
常用操作步骤
1. 加载驱动
//mysql 旧版本驱动名称,连接mysql 5.1 5.5 5.6
class.forName("com.mysql.jdbc.Driver")
//新版mysql jdbc驱动 兼容旧的mysql数据库 在某此情况可以省略
class.forName("com.mysql.cj.jdbc.Driver")
2.建立数据库连接
//localhost主机 3306端口 null数据库 root账号 密码是默认的,所以没有写
//Connection conn = DriverManager.getConnection("jdbc:mysql:?
user=root");
//url user password
//Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/dbshop?
useUnicode=true&characterEncoding=utf8","root","");
String url = "jdbc:mysql://localhost:3306/dbshop";
//url = "jdbc:mysql://localhost:3305/mysql";
String user = "root";
String password = "";
Connection conn = DriverManager.getConnection(url,user,password);
System.out.println(conn);
System.out.println(conn.getMetaData().getDatabaseProductVersion());
3. 执行相关的语句
4. 关闭连接
public class MyDemo {
public static void main(String[] args) throws
ClassNotFoundException, SQLException {
//1. 加载jdbc for mysql 驱动类
// com.mysql.jdbc.Driver 旧的mysql 5.6 5.5 5.1 5.0
// com.mysql.cj.jdbc.Driver 新的mysql5.7 8.0
Class.forName("com.mysql.cj.jdbc.Driver");
//2. 建立数据库连接 localhost:3306/hbcf user root password nieps
//Connection conn =
DriverManager.getConnection("jdbc:mysql:/hbcf?
user=root&password=nieps");
//jdbc:mysql://127.0.0.1:3306/hbcf?
useUnicode=true&characterEncoding=utf8
//Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost:3308/wxdb?user=root");
Connection conn =DriverManager.getConnection("jdbc:mysql://localhost:3308/wxdb? user=root&password=&useUnicode=true&characterEncoding=utf8");
//3. 执行相关的sql语句 select * from cf_user;
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("select * from cf_user");
while(rs.next()){
System.out.println(rs.getString("name"));
}
rs.close();
st.close();
//4. 关闭数据库连接
conn.close();
}
}
public class MyTest {
public static void main(String[] args) throws
ClassNotFoundException, SQLException {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection c =
DriverManager.getConnection("jdbc:mysql://localhost:3308/wxdb?
user=root");
Statement st = c.createStatement();
ResultSet rss = c.createStatement().executeQuery("selectversion()");
rss.next();
System.out.println(rss.getString(1));
System.out.println("--------------------------");
ResultSet rs = st.executeQuery("select * from cf_user");
while (rs.next()) {
System.out.println(rs.getString("name"));
}
rs = st.executeQuery("show tables");
while(rs.next()){
System.out.println(rs.getString(1));
}
}
}
public class MyDemo {
@Test @DisplayName("连接ubuntu mysql5.6.51")
public void m5() {
//01 docker pull mysql:5.6.51
//02 docker run -itd -p 49153:3306 --name m5 -e MYSQL_ROOT_PASSWORD=root-e TZ=Asia/Shanghai mysql:5.6.51
//03 docker run -it --rm mysql:5.6.51 mysql -h192.168.21.68 -uroot -p -
P49153
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://192.168.21.68:49153?serverTimezone=PRC";
String user = "root";
String password = "root";
try{
Class.forName(driver);
Connection conn = DriverManager.getConnection(url,user,password);
//String version = conn.getMetaData().getDatabaseProductVersion();
//System.out.println(version);
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("select now()");
if(rs.next()){
System.out.println(rs.getDate(1)); //java LocalDate mysql date
System.out.println(rs.getTime(1)); //java LocalTime mysql time
System.out.println(rs.getTimestamp(1)); //java LocalDateTime
mysql datetime
}
}catch(Exception e){
e.printStackTrace();
}
}
}