一个程序
package com.jikeyuanxuan.jdbc;
import java.sql.*;
public class JDBCthree {
public static void getconnection(){ //如果 是int 则返回int 类性 这里是Connection类型 则返回connection类型因为下面的增删需要用到这个类型
Connection conn=null;
String lianjie="jdbc:mysql://127.0.0.1:3306/jsp_db";
String username="lqc";
String password="1234";
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn=DriverManager.getConnection(lianjie, username, password);
}catch(Exception a){
a.printStackTrace();
}
}
public static void insert(){
try{
JDBCthree.getconnection();
String sql="insert into tbl_user(name,password,email)values('lqc','1234','lqc@qq.com')";
Connection conn=null;
Statement st=conn.createStatement();
int count= st.executeUpdate(sql);
System.out.print("该条语句已经执行了"+count+"次");
}catch(Exception s){
s.printStackTrace();
}
}
public static void main(String[] args){
insert();
}
}
在执行的时候 会出现异常 查看异常提示 发现是这里出现错误Statement st=conn.createStatement(); 执行后面的conn.createStatement() 前提是必须Connection conn
连接到了数据库 其实在这里 我们错觉会认为调用了第一个方法 连接到了 其实 第一个没有返回类型 执行完了 也就消失了 而我们在上面定义的是Connection conn=null; 实际上指的是这个 所以改正的最好的办法就是 使第一方法 返回Conncetion 类型方法 下面正确代码
package com.jikeyuanxuan.jdbc;
import java.sql.*;
public class JDBCthree {
public static Connection getconnection(){ //如果 是int 则返回int 类性 这里是Connection类型 则返回connection类型因为下面的增删需要用到这个类型
Connection conn=null;
String lianjie="jdbc:mysql://127.0.0.1:3306/jsp_db";
String username="lqc";
String password="1234";
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn=DriverManager.getConnection(lianjie, username, password);
}catch(Exception a){
a.printStackTrace();
}
return conn;
}
public static void insert(){
try{
Connection conn=getconnection();
String sql="insert into tbl_user(name,password,email)values('lqc','1234','lqc@qq.com')";
Statement st=conn.createStatement();
int count= st.executeUpdate(sql);
System.out.print("该条语句已经执行了"+count+"次");
}catch(Exception s){
s.printStackTrace();
}
}
public static void main(String[] args){
insert();
}
}