刚刚步入大三学年,对于就读软件专业的老油条来说,也学完了几门计算机语言。很少很少将自己的总结发表在网络上,但自己却经常访问其他大神的博客。今天就自己刚刚结束学校的实训一总结了一点自己的想法。
对于很对人来说不管你学什么语言,当正真运用于实战中时,基本上都会和数据库打交道。不管是c++、java还是其他高级语言,只有将连接的方法尽可能抽象话才能更好的重复利用。
以下就以java为例。
Java连接数据库可总结成一下几点:
1.下载并添加数据库驱动 https://dev.mysql.com/downloads/connector/j/
将压缩包下载下来解压,找到jar包文件,
建个样例如下:
在你的项目下新建一个lib文件夹,再讲jar包复制到lib文件夹 点击项目名右键->new->folde
然后向项目导入jar包:
添加成功后在外部应用包中能看到:
2.写连接方法,放回连接对象:
package com.gxkjdx.reptile.commend;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Connectio_database {
/* 数据库连接公共代码,返回一个连接对象 */
public static Connection con_db(){
Connection con=null;
//驱动程序名
String driver = "com.mysql.jdbc.Driver";
//URL指向要访问的数据库名pic_inform
String url = "jdbc:mysql://localhost:3306/pic_inform";
//MySQL配置时的用户名
String user = "root";
//MySQL配置时的密码
String password = "112367ma";
//遍历查询结果集
try {
//加载驱动程序
Class.forName(driver);
//1.getConnection()方法,连接MySQL数据库!!
con = DriverManager.getConnection(url,user,password);
//if(!con.isClosed())
//System.out.println("Succeeded connecting to the Database!");
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return con;
}
}
3.写操作方法:
public int usesql(String sql) throws SQLException{
//声明Connection对象
Connection con=Connectio_database.con_db();
java.sql.PreparedStatement pstmt=null;
int n=0;
try {
pstmt=con.prepareStatement(sql);
n=pstmt.executeUpdate();
} catch(SQLException e) {
//数据库连接失败异常处理
e.printStackTrace();
System.out.println(e.getMessage());
return 0;
}finally{
con.close();
}
return n;
}
插入、删除、修改都一样,变量n用于放回操作是否成功,成功则在数据库中显示一行受影响,n=1,失败则n=0.
String sql="insert into table_url(url,data) values('"+urlStr+"','"+dataStr+"')";
try {
//将输入的url填入记录表
int n=mys.usesql(sql);
if(n==1){
JOptionPane.showMessageDialog(null, "添加成功", "", JOptionPane.INFORMATION_MESSAGE);
}else{
}
} catch (SQLException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
至于查找稍稍有点区别:
public void finddata(){
Connection con=Connectio_database.con_db();
ResultSet rs = null;
Statement sql;
list.clear();
int n=0;
try {
sql=con.createStatement();
rs=sql.executeQuery(“SELECT * FROM table_url”);
while(rs.next()){
Urlinfo xs1=new Urlinfo(rs.getInt(1),rs.getString(2));
list.add(xs1); //用于保存结果集的列表
}
} catch(SQLException e) {
//数据库连接失败异常处理
e.printStackTrace();
}finally{
try {
con.close();
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
最后查找的结果就在列表中。