最近一直在学习java基础,因为我一直认为基础真的很重要,我同意老师说的找个大例子自习研究,搞懂一个例子,也就学会了一门语言,剩下的只需要深入了解学习。但同时,我也觉得在直接上手大项目例子之前先了解一下基础语法可能会事半功倍,而且能收获更多。
今天看了一下有关java连接mysql数据库的内容,一开始晕乎乎的,完全都不知道要如何下手,就先百度了一个相关的例子,自己亲手敲入后发现有错,
Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver;
了解到是由于没有导入mysql的jar包,于是又接着下载了mysql驱动导入,然而还是有错,看了好久,不知道问题出在哪里,于是很生气的去吃饭了(有点任性了),吃完饭回来重新找了几个例子,自己试着改了一下,将他们融合了一下,这次我先从查询入手,(之前的例子是先尝试着往数据表中插入数据),结果一次就成功了,兴奋之余,我有尝试了一下删除,更新,按条件查找等,结果都很让我满意。最后试着插入数据,也成功了。于是又回头看了一下之前的例子,发现错误原来在
sql = "insert into stu(NO,name) values('2012001','陶伟吉')";
给数据没有加分号。我还发现在操作数据库时要给字段名如:
sql = "update pet set species='mouse' where name='hehe'"; 中药给mouse、hehe加上分号;
吃一堑,长一智,以后一定会注意这些问题;
在此,给出我今天练习 的代码:
package mysql数据库测试;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class 查询 {
public static void main(String[] args) throws Exception {
Connection con = null;
String sql;
ResultSet rs;
String url = "jdbc:mysql://localhost:3306/hello?"
+ "user=root & password=883883 & useUnicode = true & characterEncoding = UTF8";
try{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("成功加载MySQL驱动程序");
con = DriverManager.getConnection(url);
System.out.println("数据库连接成功");
Statement stmt = con.createStatement();
System.out.println("查询数据:");
<span style="color:#ff6600;">sql = "select * from pet"; </span>
String name = null;
rs = stmt.executeQuery(sql);
while(rs.next()){
name = rs.getString(1) + " " + rs.getString(2) + " " + rs.getString(3);
System.out.println(name);
}
// System.out.println("插入数据:");
// <span style="background-color: rgb(255, 255, 255);"><span style="color:#cccccc;">sql = "insert into pet(name,owner) values('hehe','weihong')";</span></span>
// int rw = stmt.executeUpdate(sql);
// <span style="color:#ff6600;">sql = "select * from pet";</span>
// rs = stmt.executeQuery(sql);
// System.out.println(rw);
// while(rs.next()){
// name = rs.getString(1) + " " + rs.getString(2) + " " + rs.getString(3);
// System.out.println(name);
// }
System.out.println("只输出haha字段的值:");
<span style="color:#ff6600;">sql = "select * from pet where name = 'haha'";</span>
rs = stmt.executeQuery(sql);
while(rs.next()){
name = rs.getString(1) + " " + rs.getString(2) + " " + rs.getString(3);
System.out.println(name);
}
System.out.println("删除haha这行数据:");
<span style="color:#ff6600;">sql = "delete from pet where name='haha'";</span>
stmt.executeUpdate(sql);
sql = "select * from pet";
rs = stmt.executeQuery(sql);
while(rs.next()){
name = rs.getString(1) + " " + rs.getString(2) + " " + rs.getString(3);
System.out.println(name);
}
System.out.println("更新后:");
<span style="color:#ff6600;">sql = "update pet set species='mouse' where name='hehe'";</span>
stmt.executeUpdate(sql);
<span style="color:#ff6600;">sql = "select * from pet where species='mouse'";</span>
rs = stmt.executeQuery(sql);
//System.out.println("aaaaaaaaaaaaaaaa");//检查错误位置
while(rs.next()){
name = rs.getString(1) + " " + rs.getString(2) + " " + rs.getString(3);
System.out.println(name);
}
}
catch(SQLException e){
System.out.println("连接失败");
e.printStackTrace();
}
}
}
运行结果:
成功加载MySQL驱动程序
数据库连接成功
查询数据:
beauty weihong hamster
flower weihong dog
haha weihong null
hehe weihong mouse
hehe weihong mouse
hehe weihong mouse
hehe weihong mouse
只输出haha字段的值:
haha weihong null
删除haha这行数据:
beauty weihong hamster
flower weihong dog
hehe weihong mouse
hehe weihong mouse
hehe weihong mouse
hehe weihong mouse
更新后:
hehe weihong mouse
hehe weihong mouse
hehe weihong mouse
hehe weihong mouse