java自写类调用SQL类

发布时间:2024-05-18 15:49 发布:上海旅游网

问题描述:

在其他 类中 插入或查询 SQL
SQL是单独写在一个类中
下面是 SQL类的 代码
public class L {

L(String ll){
String sql;
Connection conn;
Statement stmt;
ResultSet rs;
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").
newInstance();
String url =
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Mlaugh";
String user = "sa";
String password = "sjmlovexf";
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();
sql = "";
rs=stmt.executeQuery(sql);

stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}

}
}

现在我想新建一个类 对上面的 SQL进行调用,改如何写 呢
求高手给 详细解答,小弟愚笨..

问题解答:

你那个有点乱,我有一个你参考下,用的时候再别处直接DB D=new DB();
然后就可可以为属性赋值并调用它的方法了。
实际很少用Statement 了
速度慢。。。我从来都不用,除非是在不能用别的时候在用。
///////////////////////////////////////
import java.sql.*;

public class DB {
private String url = "jdbc:microsoft:sqlserver://";//SQLServer路径
private String serverName = "localhost";//服务器名称
private String portNumber = "1433";//端口号
private String databaseName = "stuInfo";//数据库名称
private String userName = "sa";//登陆名
private String password = "sa";//密码
private Connection con = null;
private Statement st=null;
private ResultSet rs=null;
public DB(){

}
public void setUrl(String url){
this.url=url;
}
public String getUrl(){
return this.url;
}
public void setServerName(String serverName){
this.serverName=serverName;
}
public String getServerName(){
return this.serverName;
}
public void setPortNumber(String portNumber){
this.portNumber=portNumber;
}
public String getPortNumber(){
return this.portNumber;
}
public void setDatabaseName(String databaseName){
this.databaseName=databaseName;
}
public String getdatabaseName(){
return this.databaseName;
}
public void setUserName(String userName){
this.userName=userName;
}
public String getUserName(){
return this.userName;
}
public void setUserPassword(String password){
this.password=password;
}
public String getPassword(){
return this.password;
}
//返回连接url
private String getConnectionUrl(){
return url + serverName + ":" + portNumber + ";databaseName=" +
databaseName + ";";
}
//获得数据库联接驱动
public Connection getConnection(){
try {
//加载驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
return null;
}
try {
//获得驱动对象
con = DriverManager.
getConnection(getConnectionUrl(), userName,password);
} catch (SQLException ex1) {
ex1.printStackTrace();
return null;
}
return con;
}
//获得连接对象
public Statement getStatement(){
try {
st = getConnection().createStatement();
} catch (SQLException ex) {
ex.printStackTrace();
return null;
}
return st;
}
//获得结果集
public ResultSet getResultSet(String sql){
try {
rs = getStatement().executeQuery(sql);
} catch (SQLException ex) {
ex.printStackTrace();
return null;
}
return rs;
}
//更新数据库信息
public int getUpdate(String sql){
try {
return getStatement().executeUpdate(sql);
} catch (SQLException ex) {
ex.printStackTrace();
return 0;
}
}

//数据关闭驱动对象
public void close(){
try {
con.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
//关闭连接对象
public void closeStatement(){
try {
if(st!=null){st.close();}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
//关闭结果集
public void closeRestultSet(){
if(rs!=null){
try {
rs.close();
} catch (SQLException ex) {
}
}
}
}

好徒儿

你写个方法,不要写在构造方法里面,然后在自己定义的类里面调用该对象的方法就行了啊。

废话不多说,就是把你要的功能分别写在构造方法中,然后调用就行
比如你要connection就创建个方法返回connection型 里面放连接代码
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
最好放在最上面,设为全局的

楼主帮你的程序改了改就可以用了
public class L {
public L()
{
Connection conn;
Statement stmt;
ResultSet rs;
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").
newInstance();
String url =
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Mlaugh";
String user = "sa";
String password = "sjmlovexf";
conn = DriverManager.getConnection(url, user, password);
}
catch (Exception e) {
e.printStackTrace();
}
}
public ResultSet chaxun(String sql){
stmt = conn.createStatement();
ResultSet rs=stmt.(什么方法来着,就是创建ResultSet对象);//楼主可以用eclipse生成
rs=stmt.executeQuery(sql);

stmt.close();
conn.close();
return rs;
}
}
————————————————————————————————————
然后想用的时候
L l=new l();//构造方法直接连接数据库
ResultSet rs=l.chaxun("select * from User");
......
就这样用

热点新闻