java 初步简单连接(SQL)数据库和操作

java初入门简单连接并操作数据库


工具:eclipse 

           java1.7版本

   heidisql 或比较新的 MySQL

   MySQL连接驱动:mysql-connector-java-5.1.20.jar

先在数据库建表

java 初步简单连接(SQL)数据库和操作

下载mysql-connector-java-5.1.20.jar,放到tes下面。

java 初步简单连接(SQL)数据库和操作

右键工程tes,选择properties ,单击Add JARs,添加mysql-connector-java-5.1.20.jar。java 初步简单连接(SQL)数据库和操作



    public class Test {
public static void main(String[] args) throws Exception{
Connection con;

String dirver = "com.mysql.jdbc.Driver";//【1】

String url = "jdbc:mysql://localhost:3306/womr_app_s128?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true";//【2】
String user = "root";

String password = "password";

/*注释

关于  【1】;  推荐去看看这位写的  https://blog.csdn.net/superdangbo/article/details/78732700

关于【2】localhost可以替换成服务器的id,womr_app_s128 为数据库名 ; ?,是一个标识符,代表后面开始是一些设置。

useUnicode=true&characterEncoding=utf8 他们的作用是指定字符的编码、解码格式。比如,mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。有了这两个 useUnicode=true&characterEncoding=utf8,1 数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中;2 在从数据库中取数据的时候,数据库会先将数据库中过得数据按GBK格式解码成字节码,然后再将解码后的字节吗重新按UTF-8格式编码数据,最后再将数据返回给客户端。

但是在这边,我当前电脑连的是公司的服务器,遇到了点问题。数据库我是用 heidisql ,我写 jdbc:mysql://localhost:3306,一直连接失败 一直会报错 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. 目前找不到解决办法。

autoReconnect=true 当数据库断开始,会自动尝试连接数据库

rewriteBatchedStatements=true,并且在mysql-connector-java-5.1.13.jar以上的版本驱动,能实现高性能批量插入。

*/

try{
String uid;
String leadUid ;
String shipId;
String refitId;
int refitLevel ;

Class.forName(dirver);//【3】

/*【3】这个有兴趣的话可以看一下 https://www.cnblogs.com/gaojing/archive/2012/03/23/2413638.html

*/

con = DriverManager.getConnection(url, user, password);
if(!con.isClosed())System.out.println("Succeded connecting to the Database !");
Statement statement = con.createStatement();

String sql = "select * from t_refit limit 20";
ResultSet rs = statement.executeQuery(sql);
System.out.println("----------------------------");
System.out.println("执行结果如下所示");
System.out.println("----------------------------");
while (rs.next()) {
leadUid = rs.getString("lead_uid");
refitId = rs.getString("refitId");


System.out.println(leadUid + "\t" + refitId);
}
rs.close();
con.close();


}catch(ClassNotFoundException e){
System.out.println("Sorry, can't find the Driver");
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}finally{
System.out.println("数据库数据获取成功 !");
}
}

}

java 初步简单连接(SQL)数据库和操作

插入

                    PreparedStatement psql;
psql = con.prepareStatement("insert into t_refit(uid, lead_uid, shipId, refitId, refitLevel )" + "value(?,?,?,?,?)");
psql.setString(1, "dfdfv");
psql.setString(2, "s128dfve");
psql.setString(3, "202004");
psql.setString(4, "2040225");
psql.setInt(5, 2);

psql.executeUpdate();

结果如下:

java 初步简单连接(SQL)数据库和操作

修改


PreparedStatement psql;
psql = con.prepareStatement("update t_refit set refitLevel = ? where uid = ?");
psql.setInt(1, 4);
psql.setString(2, "dfdfv");

psql.executeUpdate();

结果如下

java 初步简单连接(SQL)数据库和操作


删除



PreparedStatement psql;
psql = con.prepareStatement("delete from t_refit where uid = ?");
psql.setString(1, "dfdfv");
psql.executeUpdate();

java 初步简单连接(SQL)数据库和操作