数据库求教

T_bones 2014-02-05 11:03:51
package com.cdd.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DB {
private Connection con; //定义数据库连接对象
private Statement stm; //定义Statement对象
private ResultSet rs; //定义查询结果集ResultSet对象
private String classname="com.mysql.jdbc.Driver"; //加载数据库驱动代码
private String url="jdbc:mysql://localhost:3306/db_database07"; //连接数据库URL
public DB(){}
public Connection getCon(){ //定义获取数据库连接方法
try{
Class.forName(classname);
}
catch(ClassNotFoundException e){
e.printStackTrace();
}
try{
con=DriverManager.getConnection(url,"root","");
}
catch(Exception e){
e.printStackTrace(System.err);
con=null;
}
return con;
}

public Statement getStmed(){ //实例化Statement方法
try{
con=getCon(); //调用获取数据库连接方法
stm=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
}catch(Exception e){e.printStackTrace(System.err);}
return stm;
}
public ResultSet getAllRs(){ //定义获取查询结果集方法
String sql="select * from tb_use"; //定义查询语句
try{
stm=getStmed();
rs=stm.executeQuery(sql); //执行查询语句
}
catch(SQLException e){e.printStackTrace();rs=null;}
return rs;
}
}


数据库都比较模块化了,小弟不明白的是加粗部分con=getCon();,为什么函数可以直接调用(赋值?),不用con=new DB().getCon()吗?在线等
...全文
139 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
licip 2014-02-05
  • 打赏
  • 举报
回复
你这是同一个类中的,可以直接调用的。
T_bones 2014-02-05
  • 打赏
  • 举报
回复
引用 1 楼 u012280292 的回复:
con=DriverManager.getConnection(url,"root",""); 是重连接池中取出一个连接 也就是说每次调用getcon 都取出一个新的连接
con=DriverManager.getConnection(url,"root","");这样的写法我倒能理解啊,无非是调用实例的方法,但是con=getCon();这样就不太懂了,直接调用什么的要在静态去啊,他也不是。。。
TuskueNeko 2014-02-05
  • 打赏
  • 举报
回复
con=DriverManager.getConnection(url,"root",""); 是重连接池中取出一个连接 也就是说每次调用getcon 都取出一个新的连接
T_bones 2014-02-05
  • 打赏
  • 举报
回复
引用 3 楼 licip 的回复:
你这是同一个类中的,可以直接调用的。
嗯,靠谱!谢谢

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧