Java连接数据库

首先下载需要用到的第三方jar包,下载地址如下:http://pan.baidu.com/s/1o7sPMoq

建议新建一个文件夹保存,在开发过程中,会需要用到不少的jar包。

在Eclipse中新建一个项目后,需要导入jar包。强烈建议使用如下方法:

第一步:在项目中新建一个文件夹,名字为lib

第二步:将刚下载好的jar包,复制到工程的lib文件夹下,得到如下效果:
这里写图片描述
Java连接数据库

第三步:在eclipse中右键工程lib文件夹的mysql-connector-java-5.1.7-bin.jar,选择“Build Path”->继续选
择“Add to Build Path”,得到如下效果,这样导入jar包就成功了。
Java连接数据库!
这里写图片描述

这样导入的效果是:在我们导出整个工程的时候,会自动把lib文件夹下的jar包也一起导出。再导入给另一台电脑下也就不需要再进行导入jar包的工作了。

在我们操作数据库时,强烈建议将数据库的代码封装在一个类中。
接下来,我们开始连接数据库。

新建一个MySql类,代码如下:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class MySql {
    static String ip = "数据库的IP地址";
    static String port = "数据库的端口";
    static String databaseName = "数据库的名字";
    static String encode = "useUnicode=true&characterEncoding=utf-8"; // 设置数据库连接为字符集较大的utf-8
    static String username = "连接数据库的用户名";
    static String password = "连接数据库的密码";
    public static void main(String[] args) throws SQLException {
        String sql = "insert into user values(null, ?, ?)";
        PreparedStatement preparedStatement = MySql.getPreparedStatement(sql);
        preparedStatement.setString(1, "Aiden");
        preparedStatement.setString(2, "123456");
        preparedStatement.execute();
    }

    public static Connection getConn() { // 获取与数据库的连接
        String url = "jdbc:mysql://" + ip + ":" + port + "/" + databaseName + "?" + encode; // 连接数据库的路径
        try {
            Class.forName("com.mysql.jdbc.Driver"); // 加载驱动
            Connection connection = DriverManager.getConnection(url, username, password); // 创建和数据库的连接
            return connection;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public static PreparedStatement getPreparedStatement(String sql) { // 获取SQL操作数据库的准备
        try {
            return MySql.getConn().prepareStatement(sql);
        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        }
    }

}

代码运行后,我们查看数据库内容:
这里写图片描述

由于数据库中id字段是自增的,所以在sql语句中用null代替。
这样对数据库执行sql语句是比较安全的,因为使用了参数化设置,降低了sql语句注入的可能性。
我们在数据库进行delete、update操作时,也是一样的。

代码块如下:
在做修改操作时:

public static void main(String[] args) throws SQLException {
    String sql = "update user set id = ? where id = ?";
    PreparedStatement preparedStatement = MySql.getPreparedStatement(sql);
    preparedStatement.setInt(1, 2);
    preparedStatement.setInt(2, 1);
    preparedStatement.execute();
}

我们可以看到数据表user中的数据改变为:
这里写图片描述

在做删除操作时:

public static void main(String[] args) throws SQLException {
    String sql = "delete from user where id = ?";
    PreparedStatement preparedStatement = MySql.getPreparedStatement(sql);
    preparedStatement.setInt(1, 2);
    preparedStatement.execute();
}

程序运行结果后,我们可以看到数据表user中的数据没有了:
这里写图片描述

在做查询操作时,例如数据表user中的数据如下:
这里写图片描述

代码块如下:

public static void main(String[] args) throws SQLException {
    String sql = "select * from user";
    PreparedStatement preparedStatement = MySql.getPreparedStatement(sql);
    ResultSet re = preparedStatement.executeQuery();
    while(re.next()) {
        System.out.println(re.getInt(1) + "\t" + re.getString(2) + "\t" + re.getString(3));
    }
}

程序运行结果为:
这里写图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值