1.Java连接MySQL数据库

Java连接MySql需要​​下载​​JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本)。然后将其解压缩到任一目录。我是解压到D盘,然后将其目录下的MySQL-connector-java-5.0.5-bin.jar加到classpath里,具体如下:

“我的电脑”-> “属性” -> “高级” -> “环境变量”,在系统变量那里编辑classpath,将D:\MySQL-connector-java-5.0.5\MySQL-connector-java-5.0.5-bin.jar加到最后,在加这个字符串前要加“;”,以与前一个classpath区分开。然后确定。

​​package​​​ ​​hqs;​​


​​import​​​ ​​java.sql.*;​​


​​public​​​ ​​class​​​ ​​DataBasePractice {​​



​​public​​​ ​​static​​​ ​​void​​​ ​​main(String[] args) {​​


​​//声明Connection对象​​


​​Connection con;​​


​​//驱动程序名​​


​​String driver = ​​​​"com.mysql.jdbc.Driver"​​​​;​​


​​//URL指向要访问的数据库名mydata​​


​​String url = ​​​​"jdbc:mysql://localhost:3306/mydata"​​​​;​​


​​//MySQL配置时的用户名​​


​​String user = ​​​​"root"​​​​;​​


​​//MySQL配置时的密码​​


​​String password = ​​​​"root"​​​​;​​


​​//遍历查询结果集​​


​​try​​​ ​​{​​


​​//加载驱动程序​​


​​Class.forName(driver);​​


​​//1.getConnection()方法,连接MySQL数据库!!​​


​​con = DriverManager.getConnection(url,user,password);​​


​​if​​​​(!con.isClosed())​​


​​System.out.println(​​​​"Succeeded connecting to the Database!"​​​​);​​


​​//2.创建statement类对象,用来执行SQL语句!!​​


​​Statement statement = con.createStatement();​​


​​//要执行的SQL语句​​


​​String sql = ​​​​"select * from student"​​​​;​​


​​//3.ResultSet类,用来存放获取的结果集!!​​


​​ResultSet rs = statement.executeQuery(sql);​​


​​System.out.println(​​​​"-----------------"​​​​);​​


​​System.out.println(​​​​"执行结果如下所示:"​​​​); ​​


​​System.out.println(​​​​"-----------------"​​​​); ​​


​​System.out.println(​​​​" 学号"​​​ ​​+ ​​​​"\t"​​​ ​​+ ​​​​" 姓名"​​​​); ​​


​​System.out.println(​​​​"-----------------"​​​​); ​​

 

​​String name = ​​​​null​​​​;​​


​​String id = ​​​​null​​​​;​​


​​while​​​​(rs.next()){​​


​​//获取stuname这列数据​​


​​name = rs.getString(​​​​"stuname"​​​​);​​


​​//获取stuid这列数据​​


​​id = rs.getString(​​​​"stuid"​​​​);​​


​​//首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。​​


​​//然后使用GB2312字符集解码指定的字节数组。​​


​​name = ​​​​new​​​ ​​String(name.getBytes(​​​​"ISO-8859-1"​​​​),​​​​"gb2312"​​​​);​​


​​//输出结果​​


​​System.out.println(id + ​​​​"\t"​​​ ​​+ name);​​


​​}​​


​​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) {​​


​​// TODO: handle exception​​


​​e.printStackTrace();​​


​​}​​​​finally​​​​{​​


​​System.out.println(​​​​"数据库数据成功获取!!"​​​​);​​


​​}​​


​​}​​


​​}​​

2.添加、修改、删除操作

在上面while代码段后面添加以下代码段:

​​String name = ​​​​null​​​​;​​


​​String id = ​​​​null​​​​;​​


​​while​​​​(rs.next()){​​


​​//获取stuname这列数据​​


​​name = rs.getString(​​​​"stuname"​​​​);​​


​​//获取stuid这列数据​​


​​id = rs.getString(​​​​"stuid"​​​​);​​


​​//首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。​​


​​//然后使用GB2312字符集解码指定的字节数组。​​


​​name = ​​​​new​​​ ​​String(name.getBytes(​​​​"ISO-8859-1"​​​​),​​​​"gb2312"​​​​);​​


​​//输出结果​​


​​System.out.println(id + ​​​​"\t"​​​ ​​+ name);​​


​​}​​

 

 

 

​​PreparedStatement psql;​​


​​ResultSet res;​​


​​//预处理添加数据,其中有两个参数--“?”​​


​​psql = con.prepareStatement(​​​​"insert into student values(?,?)"​​​​);​​


​​psql.setInt(​​​​1​​​​, ​​​​8​​​​); ​​​​//设置参数1,创建id为5的数据​​


​​psql.setString(​​​​2​​​​, ​​​​"xiaogang"​​​​); ​​​​//设置参数2,name 为小明​​


​​psql.executeUpdate(); ​​​​//执行更新​​

 

​​//预处理更新(修改)数据​​


​​psql = con.prepareStatement(​​​​"update student set stuname = ? where stuid = ?"​​​​);​​


​​psql.setString(​​​​1​​​​,​​​​"xiaowang"​​​​); ​​​​//设置参数1,将name改为王五​​


​​psql.setInt(​​​​2​​​​,​​​​10​​​​); ​​​​//设置参数2,将id为2的数据做修改​​


​​psql.executeUpdate();​​
//预处理删除数据​​


​​psql = con.prepareStatement(​​​​"delete from student where stuid = ?"​​​​);​​


​​psql.setInt(​​​​1​​​​, ​​​​5​​​​);​​


​​psql.executeUpdate();​​

 

​​//查询修改数据后student表中的数据​​


​​psql = con.prepareStatement(​​​​"select*from student"​​​​);​​


​​res = psql.executeQuery(); ​​​​//执行预处理sql语句​​


​​System.out.println(​​​​"执行增加、修改、删除后的数据"​​​​);​​


​​while​​​​(res.next()){​​


​​name = res.getString(​​​​"stuname"​​​​);​​


​​id = res.getString(​​​​"stuid"​​​​);​​


​​name = ​​​​new​​​ ​​String(name.getBytes(​​​​"ISO-8859-1"​​​​),​​​​"gb2312"​​​​);​​


​​System.out.println(id + ​​​​"\t"​​​ ​​+ name);​​


​​}​​


​​res.close();​​


​​psql.close();​​


该代码段使用到了预处理语句:

con.prepareStatement(String sql);

这样生成数据库底层的内部命令,并将该命令封装在preparedStatement对象中,可以减轻数据库负担,提高访问数据库速度。

Java连接Oracle数据库的示例代码

最基本的Oracle数据库连接代码(只针对Oracle11g):

1、右键项目->构建路径->配置构建路径,选择第三项“库”,然后点击“添加外部Jar”,选择“D:\Oracle\app\oracle\product\11.2.0\server \jdbc\lib\ojdbc6_g.jar”(注:D:\Oracle为数据库的安装路径)。

2、以下代码为非常标准的Oracle数据库连接代码示例:

/**
* 一个非常标准的连接Oracle数据库的示例代码
*/
public void testOracle()
{
Connection con = null;// 创建一个数据库连接
PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用Statement
ResultSet result = null;// 创建一个结果集对象
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序
System.out.println("开始尝试连接数据库!");
String url = "jdbc:oracle:" + "thin:@127.0.0.1:1521:XE";// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库名
String user = "system";// 用户名,系统默认的账户名
String password = "147";// 你安装时选设置的密码
con = DriverManager.getConnection(url, user, password);// 获取连接
System.out.println("连接成功!");
String sql = "select * from student where name=?";// 预编译语句,“?”代表参数
pre = con.prepareStatement(sql);// 实例化预编译语句
pre.setString(1, "刘显安");// 设置参数,前面的1表示参数的索引,而不是表中列名的索引
result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数
while (result.next())
// 当结果集不为空时
System.out.println("学号:" + result.getInt("id") + "姓名:"
+ result.getString("name"));
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
try
{
// 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源
// 注意关闭的顺序,最后使用的最先关闭
if (result != null)
result.close();
if (pre != null)
pre.close();
if (con != null)
con.close();
System.out.println("数据库连接已关闭!");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

龙腾一族至尊龙骑