创建Connection
F4引包
package com.javakc.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Utils {
public static Connection getConn() throws ClassNotFoundException, SQLException{
//加载数据库驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");
//19c 连接数据库的URL
String url="jdbc:oracle:thin:@localhost:1521/orclpdb";
//通过驱动管理器获得数据库连接
Connection conn=DriverManager.getConnection(url,"账户","密码");
return conn;
}
public static void main(String[] args) throws SQLException, ClassNotFoundException {
Connection conn = getConn();
System.out.println(conn);
}
}
oracle.jdbc.driver.T4CConnection@7907ec20
创建Connection经常出现的错误
没有找到数据库驱动
因为没有在工程中引入数据库的驱动文件,报出如下错误:
Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at com.javakc.db.Utils.getConn(Utils.java:10)
at com.javakc.Test.main(Test.java:43)
已经引入了数据库的驱动文件,报出下面错误,因为在编写代码时,写错了驱动的类路径,报出如下错误。
Exception in thread "main" java.lang.ClassNotFoundException: Oracle.jdbc.driver.OracleDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at com.javakc.db.Utils.getConn(Utils.java:10)
at com.javakc.Test.main(Test.java:43)
URL错误
因为写错了url报出如下错误:
Exception in thread "main" java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.javakc.db.Utils.getConn(Utils.java:14)
at com.javakc.Test.main(Test.java:43)
编写时要认真检查url的每一个部分,一定要copy正确的url,然后认真进行修改。
错写了url中的oracle,出现如下错误:
Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:racle:thin:@192.168.1.99:1521:orcl
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.javakc.db.Utils.getConn(Utils.java:14)
at com.javakc.Test.main(Test.java:43)
用户名和密码错误
错写了用户名和密码,出现如下错误:
Exception in thread "main" java.sql.SQLException: ORA-01017: invalid username/password; logon denied
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:283)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:278)
at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOauth(T4CTTIoauthenticate.java:785)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:362)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.javakc.db.Utils.getConn(Utils.java:14)
at com.javakc.Test.main(Test.java:43)
Statement
查询操作
package com.javakc.vo;
//实体类 封装数据
public class UserModel {
private String id;
private String name;
private String sex;
private String phone;
private String city;
private String roleId;
private int age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getRoleId() {
return roleId;
}
public void setRoleId(String roleId) {
this.roleId = roleId;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "UserModel{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
", phone='" + phone + '\'' +
", city='" + city + '\'' +
", roleId='" + roleId + '\'' +
", age=" + age +
'}';
}
}
package com.javakc.test;
import com.javakc.db.Utils;
import com.javakc.vo.UserModel;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class Query {
public static void main(String[] args) {
List<UserModel> list = query();
for (UserModel o:list){
System.out.println(o);
}
}
public static List<UserModel> query(){
List<UserModel> list=new ArrayList();
Connection conn=null;
try {
//通过工具类取得数据连接
conn=Utils.getConn(