首先下载需要用到的第三方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));
}
}
程序运行结果为: