参考自:
https://blog.csdn.net/qq_22172133/article/details/81266048
https://blog.csdn.net/u011753266/article/details/80044768
1,JDBC API的作用:
DriverManager
类:装载驱动程序,并为创建新的数据库连接提供支持。
Connection
接口:负责连接数据库并担任传送数据的任务。
Statement
接口:由Connection产生,负责执行SQL语句。
ResultSet
接口:负责保存和处理Statement执行后所产生的查询结果。
PreparedStatement
接口:Statement的子接口,也由Connection产生,同样负责执行SQL语句。与Statement接口相比,PreparedStatement接口具有高安全性、高性能、高可读性和高可维护性的优点。
CallableStatement
接口 :用于调用存储过程
2,常用数据库URL地址的写法:
Oracle:jdbc:oracle:thin:@localhost:1521:demo
SqlServer:jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=demo
MySql:jdbc:mysql://localhost:3306/demo
3,加载驱动
Oracle:oracle.jdbc.driver.OracleDriver
SqlServer:com.microsoft.jdbc.sqlserver.SQLServerDriver
MySql:com.mysql.jdbc.Driver
4,实例
1,去http://www.mysql.com/downloads/connector/j 下载jdbc驱动并在java项目》Build Path》Configure Build Path 中添加JAR包引用。
2,Class.forName()加载数据库驱动。
3,定义连接字符串并使用相关驱动类建立连接并获得一个Connection 对象,其常用方法如下:
createStatement() 创建向数据库发送sql的statement对象。
prepareStatement(sql) 创建向数据库发送预编译sql的PrepareSatement对象。
prepareCall(sql) 创建执行存储过程的callableStatement对象。
setAutoCommit(boolean autoCommit) 设置事务是否自动提交。
commit() 在链接上提交事务。
rollback() 在此链接上回滚事务。
4,创建语句对象并且获得一个Statement 对象。其常用方法如下:
executeQuery(String sql) 用于向数据发送查询语句。
executeUpdate(String sql) 用于向数据库发送insert、update或delete语句
execute(String sql) 用于向数据库发送任意sql语句
addBatch(String sql) 把多条sql语句放到一个批处理中。
executeBatch() 向数据库发送一批sql语句执行。
5,执行语句并用Resultset对象获取执行结果,然后你还可以通过调用ResultSet.next()方法对结果进行迭代访问。
///mysql demo数据库》book表》(bookid和name属性,varchar类型)
package demo.jdbcMysql.haha1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.ResultSet;
public class test1 {
public static void main(String[] args) {
System.out.println("main外部 上标记");
mysqlConn();
System.out.println("main外部 下标记");
}
public static void mysqlConn()
{
System.out.println("main内部标记");
PreparedStatement ps=null;
Statement stmt = null;
Connection conn=null;
ResultSet rs=null;
try {
Class.forName("com.mysql.jdbc.Driver");
String mysqlrl = "jdbc:mysql://localhost:3306/demo";
conn=DriverManager.getConnection(mysqlrl,"root","123456");
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from book");
String bookid,name ;
System.out.println("main内部标记 while 外部标记");
while(rs.next()) {
System.out.println("main内 while 内部标记");
bookid = rs.getString(1);
name = rs.getString(2);
System.out.println(bookid+","+name);
}
}
catch(Exception ex) {
System.out.println(ex.toString());
}
}
}
ctrl+f11运行,运行结果如下: (我比较郁闷的是java的每个包中都可以拥有自己的main函数。。,和c#有点不一样)
ps连接文章:
https://blog.csdn.net/csdnnews/article/details/105355436 可能自己也做不到好的基础。