package cn.com.jdbcd;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;/**
*
*用单子设计模式连接数据库
*
*/
public class ConnectionDB {
private static Connection conn = null; private ConnectionDB() { }
public static Connection ConnectionDB(){
if(conn==null){
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@localhost:1521:system";
String user="scott";
String password="tiger";
conn=DriverManager.getConnection(url, user, password);
System.out.println("数据库连接成功...........");
} catch (ClassNotFoundException e) {
System.out.println("数据库驱动异常:"+e.getMessage());
e.printStackTrace();
} catch (SQLException e) {
System.out.println("数据库连接异常"+e.getMessage());
e.printStackTrace();
}
}
return conn;
}
/**
* 关闭数据库连接
*/
public static void closeDB(PreparedStatement ps,
ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
System.out.println("关闭数据库异常:"+e.getMessage());
e.printStackTrace();
}
}if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
System.out.println("关闭数据库异常2"+e.getMessage());
e.printStackTrace();
}
}
}
}
---------------------------------
package cn.com.jdbcd;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;public class TestJdbc1 { /**
* JDBC连接数据库
*/ private Connection conn = ConnectionDB.ConnectionDB(); private PreparedStatement ps = null; private ResultSet rs = null;
private int rs1=0; public static void main(String[] args) {
TestJdbc1 test=new TestJdbc1();
//Scanner sc=new Scanner(System.in);
//System.out.print("进行模糊查询,请输入他的姓名中的任意字");
//test.findInfo();
//String S=sc.nextLine();
//test.likeFindInfo(S);
test.insertInfo(70,"国防部","北京");
}
/**
*
* @param id
* 插入记录
* @param loc
*/
private void insertInfo(int id,String name,String loc) {
StringBuffer sql3=new StringBuffer(
"insert into dept ");
if(id!=0&&name!=null&&loc!=null){
sql3.append(" values("+id+",'"+name+"','"+loc+"')");
}
try {
ps=conn.prepareStatement(sql3.toString());
System.out.println(sql3.toString());
//System.out.println("部门号" + "\t" + "姓名 "+"籍贯");
rs1=ps.executeUpdate();
//System.out.println(rs1);
while(rs.next()){
System.out.print(rs.getInt("deptno")+"\t");
System.out.print(rs.getString("dname")+"\t");
System.out.print(rs.getString("loc")+"\t");
System.out.println();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
*
* 模糊查询
*/
private void likeFindInfo(String name) {
/*String sql2="select deptno,dname,loc from " +
"dept where 1==1";*/
StringBuffer sql2=new StringBuffer("select * from dept where 1=1");
/*if(id!=0){
sql2.append(" and deptno like '%");//注意里面的单引号
sql2.append(id);
sql2.append("%'");
}*/
if(name!=null){
sql2.append(" and dname like '%");
sql2.append(name);
sql2.append("%'");
}
try {
ps=conn.prepareStatement(sql2.toString());
System.out.println(sql2.toString());
System.out.println("部门号" + "\t" + "姓名 "+"籍贯");
rs=ps.executeQuery();
while(rs.next()){
System.out.print(rs.getInt("deptno")+"\t");
System.out.print(rs.getString("dname")+"\t");
System.out.print(rs.getString("loc")+"\t");
System.out.println();
}
} catch (SQLException e) {
System.out.println("查询用户信息报错:"+e.getMessage());
e.printStackTrace();
}finally{
ConnectionDB.closeDB(ps, rs);
}
} public void findInfo() {
String sql = "select deptno,dname,loc from dept";
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
System.out.println("部门号" + "\t" + "姓名 "+"籍贯");
while (rs.next()) {
System.out.print(rs.getInt(1) + "\t");
System.out.print(rs.getString(2) + "\t");
System.out.print(rs.getString(3) + "\t");
System.out.println(); }
} catch (SQLException e) {
System.out.println("查询用户信息报错" + e.getMessage());
e.printStackTrace();
}finally{
ConnectionDB.closeDB(ps, rs);
}
}
}
那个插入业务不能实现啊??
数据库连接成功...........
insert into dept values(70,'国防部','北京')
Exception in thread "main" java.lang.NullPointerException
at cn.com.jdbcd.TestJdbc1.insertInfo(TestJdbc1.java:51)
at cn.com.jdbcd.TestJdbc1.main(TestJdbc1.java:30)
该怎么解决啊?、谢谢,请帮忙改一下并说明原因
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;/**
*
*用单子设计模式连接数据库
*
*/
public class ConnectionDB {
private static Connection conn = null; private ConnectionDB() { }
public static Connection ConnectionDB(){
if(conn==null){
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@localhost:1521:system";
String user="scott";
String password="tiger";
conn=DriverManager.getConnection(url, user, password);
System.out.println("数据库连接成功...........");
} catch (ClassNotFoundException e) {
System.out.println("数据库驱动异常:"+e.getMessage());
e.printStackTrace();
} catch (SQLException e) {
System.out.println("数据库连接异常"+e.getMessage());
e.printStackTrace();
}
}
return conn;
}
/**
* 关闭数据库连接
*/
public static void closeDB(PreparedStatement ps,
ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
System.out.println("关闭数据库异常:"+e.getMessage());
e.printStackTrace();
}
}if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
System.out.println("关闭数据库异常2"+e.getMessage());
e.printStackTrace();
}
}
}
}
---------------------------------
package cn.com.jdbcd;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;public class TestJdbc1 { /**
* JDBC连接数据库
*/ private Connection conn = ConnectionDB.ConnectionDB(); private PreparedStatement ps = null; private ResultSet rs = null;
private int rs1=0; public static void main(String[] args) {
TestJdbc1 test=new TestJdbc1();
//Scanner sc=new Scanner(System.in);
//System.out.print("进行模糊查询,请输入他的姓名中的任意字");
//test.findInfo();
//String S=sc.nextLine();
//test.likeFindInfo(S);
test.insertInfo(70,"国防部","北京");
}
/**
*
* @param id
* 插入记录
* @param loc
*/
private void insertInfo(int id,String name,String loc) {
StringBuffer sql3=new StringBuffer(
"insert into dept ");
if(id!=0&&name!=null&&loc!=null){
sql3.append(" values("+id+",'"+name+"','"+loc+"')");
}
try {
ps=conn.prepareStatement(sql3.toString());
System.out.println(sql3.toString());
//System.out.println("部门号" + "\t" + "姓名 "+"籍贯");
rs1=ps.executeUpdate();
//System.out.println(rs1);
while(rs.next()){
System.out.print(rs.getInt("deptno")+"\t");
System.out.print(rs.getString("dname")+"\t");
System.out.print(rs.getString("loc")+"\t");
System.out.println();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
*
* 模糊查询
*/
private void likeFindInfo(String name) {
/*String sql2="select deptno,dname,loc from " +
"dept where 1==1";*/
StringBuffer sql2=new StringBuffer("select * from dept where 1=1");
/*if(id!=0){
sql2.append(" and deptno like '%");//注意里面的单引号
sql2.append(id);
sql2.append("%'");
}*/
if(name!=null){
sql2.append(" and dname like '%");
sql2.append(name);
sql2.append("%'");
}
try {
ps=conn.prepareStatement(sql2.toString());
System.out.println(sql2.toString());
System.out.println("部门号" + "\t" + "姓名 "+"籍贯");
rs=ps.executeQuery();
while(rs.next()){
System.out.print(rs.getInt("deptno")+"\t");
System.out.print(rs.getString("dname")+"\t");
System.out.print(rs.getString("loc")+"\t");
System.out.println();
}
} catch (SQLException e) {
System.out.println("查询用户信息报错:"+e.getMessage());
e.printStackTrace();
}finally{
ConnectionDB.closeDB(ps, rs);
}
} public void findInfo() {
String sql = "select deptno,dname,loc from dept";
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
System.out.println("部门号" + "\t" + "姓名 "+"籍贯");
while (rs.next()) {
System.out.print(rs.getInt(1) + "\t");
System.out.print(rs.getString(2) + "\t");
System.out.print(rs.getString(3) + "\t");
System.out.println(); }
} catch (SQLException e) {
System.out.println("查询用户信息报错" + e.getMessage());
e.printStackTrace();
}finally{
ConnectionDB.closeDB(ps, rs);
}
}
}
那个插入业务不能实现啊??
数据库连接成功...........
insert into dept values(70,'国防部','北京')
Exception in thread "main" java.lang.NullPointerException
at cn.com.jdbcd.TestJdbc1.insertInfo(TestJdbc1.java:51)
at cn.com.jdbcd.TestJdbc1.main(TestJdbc1.java:30)
该怎么解决啊?、谢谢,请帮忙改一下并说明原因
package cn.com.jdbcd; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; /**
*
*用单子设计模式连接数据库
*
*/
public class ConnectionDB {
private static Connection conn = null; private ConnectionDB() { } public static Connection ConnectionDB(){
if(conn==null){
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@localhost:1521:system";
String user="scott";
String password="tiger";
conn=DriverManager.getConnection(url, user, password);
System.out.println("数据库连接成功...........");
} catch (ClassNotFoundException e) {
System.out.println("数据库驱动异常:"+e.getMessage());
e.printStackTrace();
} catch (SQLException e) {
System.out.println("数据库连接异常"+e.getMessage());
e.printStackTrace();
}
}
return conn;
} /**
* 关闭数据库连接
*/ public static void closeDB(PreparedStatement ps,
ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
System.out.println("关闭数据库异常:"+e.getMessage());
e.printStackTrace();
}
}if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
System.out.println("关闭数据库异常2"+e.getMessage());
e.printStackTrace();
}
}
}
}
---------------------------------
package cn.com.jdbcd; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner; public class TestJdbc1 { /**
* JDBC连接数据库
*/ private Connection conn = ConnectionDB.ConnectionDB(); private PreparedStatement ps = null; private ResultSet rs = null; private int rs1=0; public static void main(String[] args) {
TestJdbc1 test=new TestJdbc1();
//Scanner sc=new Scanner(System.in);
//System.out.print("进行模糊查询,请输入他的姓名中的任意字");
//test.findInfo();
//String S=sc.nextLine();
//test.likeFindInfo(S);
test.insertInfo(70,"国防部","北京");
}
/**
*
* @param id
* 插入记录
* @param loc
*/
private void insertInfo(int id,String name,String loc) {
StringBuffer sql3=new StringBuffer(
"insert into dept ");
if(id!=0&&name!=null&&loc!=null){
sql3.append(" values("+id+",'"+name+"','"+loc+"')");
}
try {
ps=conn.prepareStatement(sql3.toString());
System.out.println(sql3.toString());
//System.out.println("部门号" + "\t" + "姓名 "+"籍贯");
rs1=ps.executeUpdate();
//System.out.println(rs1);
while(rs.next()){
System.out.print(rs.getInt("deptno")+"\t");
System.out.print(rs.getString("dname")+"\t");
System.out.print(rs.getString("loc")+"\t");
System.out.println();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
*
* 模糊查询
*/
private void likeFindInfo(String name) { /*String sql2="select deptno,dname,loc from " +
"dept where 1==1";*/
StringBuffer sql2=new StringBuffer("select * from dept where 1=1"); /*if(id!=0){
sql2.append(" and deptno like '%");//注意里面的单引号
sql2.append(id);
sql2.append("%'");
}*/
if(name!=null){
sql2.append(" and dname like '%");
sql2.append(name);
sql2.append("%'");
}
try {
ps=conn.prepareStatement(sql2.toString());
System.out.println(sql2.toString());
System.out.println("部门号" + "\t" + "姓名 "+"籍贯");
rs=ps.executeQuery();
while(rs.next()){
System.out.print(rs.getInt("deptno")+"\t");
System.out.print(rs.getString("dname")+"\t");
System.out.print(rs.getString("loc")+"\t");
System.out.println();
}
} catch (SQLException e) {
System.out.println("查询用户信息报错:"+e.getMessage());
e.printStackTrace();
}finally{
ConnectionDB.closeDB(ps, rs);
} } public void findInfo() {
String sql = "select deptno,dname,loc from dept";
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
System.out.println("部门号" + "\t" + "姓名 "+"籍贯");
while (rs.next()) {
System.out.print(rs.getInt(1) + "\t");
System.out.print(rs.getString(2) + "\t");
System.out.print(rs.getString(3) + "\t");
System.out.println(); }
} catch (SQLException e) {
System.out.println("查询用户信息报错" + e.getMessage());
e.printStackTrace();
}finally{
ConnectionDB.closeDB(ps, rs);
}
} }那个插入业务不能实现啊??
数据库连接成功...........
insert into dept values(70,'国防部','北京')
Exception in thread "main" java.lang.NullPointerException
at cn.com.jdbcd.TestJdbc1.insertInfo(TestJdbc1.java:51)
at cn.com.jdbcd.TestJdbc1.main(TestJdbc1.java:30)
该怎么解决啊?、谢谢,请帮忙改一下并说明原因
//你连接数据库类是没有问题的。下面的是有问题。
package cn.com.jdbcd;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;public class TestJdbc1 { /**
* JDBC连接数据库
*/ private Connection conn = ConnectionDB.ConnectionDB(); private PreparedStatement ps = null; private ResultSet rs = null; private int rs1 = 0; public static void main(String[] args) {
TestJdbc1 test = new TestJdbc1();
// Scanner sc=new Scanner(System.in);
// System.out.print("进行模糊查询,请输入他的姓名中的任意字");
// test.findInfo();
// String S=sc.nextLine();
// test.likeFindInfo(S);
test.insertInfo(70, "国防部", "北京");
} /**
*
* @param id
* 插入记录
* @param loc
*/
private void insertInfo(int id, String name, String loc) {
StringBuffer sql3 = new StringBuffer("insert into dept ");
if (id != 0 && name != null && loc != null) {
sql3.append(" values(" + id + ",'" + name + "','" + loc + "')");
}
try {
ps = conn.prepareStatement(sql3.toString());
System.out.println(sql3.toString());
// System.out.println("部门号" + "\t" + "姓名 "+"籍贯");
rs1 = ps.executeUpdate(); //记录影响的行数
// System.out.println(rs1);
/*这注释都不用了,因为你都是想打印信息,你已经在下面打印了,这里打印rs还是空的,所以就出现了异常。
* while (rs.next()) { System.out.print(rs.getInt("deptno") + "\t");
* System.out.print(rs.getString("dname") + "\t");
* System.out.print(rs.getString("loc") + "\t");
* System.out.println(); }
*/
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /**
*
* 模糊查询
*/
private void likeFindInfo(String name) { /*
* String sql2="select deptno,dname,loc from " + "dept where 1==1";
*/
StringBuffer sql2 = new StringBuffer("select * from dept where 1=1"); /*
* if(id!=0){ sql2.append(" and deptno like '%");//注意里面的单引号
* sql2.append(id); sql2.append("%'"); }
*/
if (name != null) {
sql2.append(" and dname like '%");
sql2.append(name);
sql2.append("%'");
}
try {
ps = conn.prepareStatement(sql2.toString());
System.out.println(sql2.toString());
System.out.println("部门号" + "\t"
+ "姓名 " + "籍贯");
rs = ps.executeQuery();
while (rs.next()) {
System.out.print(rs.getInt("deptno") + "\t");
System.out.print(rs.getString("dname") + "\t");
System.out.print(rs.getString("loc") + "\t");
System.out.println();
}
} catch (SQLException e) {
System.out.println("查询用户信息报错:" + e.getMessage());
e.printStackTrace();
} finally {
ConnectionDB.closeDB(ps, rs);
} } public void findInfo() {
String sql = "select deptno,dname,loc from dept";
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
System.out.println("部门号" + "\t"
+ "姓名 " + "籍贯");
while (rs.next()) {
System.out.print(rs.getInt(1) + "\t");
System.out.print(rs.getString(2) + "\t");
System.out.print(rs.getString(3) + "\t");
System.out.println(); }
} catch (SQLException e) {
System.out.println("查询用户信息报错" + e.getMessage());
e.printStackTrace();
} finally {
ConnectionDB.closeDB(ps, rs);
}
}}
System.out.print(rs.getInt("deptno")+"\t");
System.out.print(rs.getString("dname")+"\t");
System.out.print(rs.getString("loc")+"\t");
System.out.println();
}
插入记录方法中这段代码根本没意义,rs肯定是null