学习到这里相比大家的SQL语言已经学了,相应的一些主流的数据库MySQL Oracle SQL Server也应该接触过了。接下来我对JDBC连接数据库的操作进行简单的说明
首先在工程中需要引进mysql-connector-java.jar驱动包,我已经在之前的博客中写了(这一部分不清楚的看我原先学的博客)
类中引进一个方法用于连接MySQL数据库
前提是在MySQL数据库中建立相应的表(这里就不赘述了)
- 数据库的连接操作
public static Connection getConnection() {
Connection conn =null;
try {
Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp_db?useSSL=false", "root", "xxxxxxx");
System.out.println("数据库连接成功!");
}catch (Exception e) {
e.printStackTrace();
}
return conn;//返回conn
}
此段代码的说明:一些在代码注释中
DirverManager类用来管理数据库中的所有的驱动程序是JDBC的管理层
getConnection()方法是DriverManager类中的方法
每次访问数据库中的时候都要通过Connnection类创建对象来执行操作数据库的sql语句
jdbc:mysql://localhost:3306/jsp_db指定数据库的URL localhost:用户名,3306:端口,jsp_db:一个数据库名
root:数据库的登陆用户名,xxxxxx:数据库密码。
将此代码进行异常处理。
运行控制台中提示:数据库连接成功!则为连接成功
- 插入数据方法
public static void insert() {
Connection conn =getConnection();//得到连接方法
try {
String sql = "INSERT INTO tbl_user(name,password,email)" +
"VALUES ('xiaoming','123456','tom@gmail.com')";//sql插入数据语句
Statement st = conn.createStatement();
int count = st.executeUpdate(sql);//可以执行insert update delete语句
System.out.println("向用户表中添加了"+count+"条数据");
conn.close();
}catch(Exception e) {
e.printStackTrace();
}
}
此段代码的说明:Statement接口实例用于在已经建立的数据库的基础上向数据库发送sql语句。执行insert updata delete操作的时候需要这个接口中的executeUpdate()方法,Statement实例通过Connection实例的createStatement()方法获取Statement st = conn.createStatement();
3. 更新数据库方法
更新数据库方法同插入数据库方法在此不做赘述
//更新数据
public static void update() {
Connection conn =getConnection();//得到连接方法
try {
String sql = "UPDATE tbl_user SET password='12345',email='xiaozhang@qq.com' where name='xiaozhang'";
Statement st = conn.createStatement();
int count = st.executeUpdate(sql);//可以执行insert update delete语句
System.out.println("用户更新了"+count+"条数据");
conn.close();
}catch(Exception e) {
e.printStackTrace();
}
}
- 删除数据库方法
删除数据库方法同插入数据库方法在此不做赘述
public static void delete() {
Connection conn =getConnection();
try {
String sql = "delete from tbl_user where name='xiaozhang'";
Statement st = conn.createStatement();
int count = st.executeUpdate(sql);//可以执行insert update delete语句
System.out.println("用户删除了"+count+"条数据");
conn.close();
}catch(Exception e) {
e.printStackTrace();
}
}
- 查询操作
查询操作有所不同,但大体是相同的思路就是加了几个接口的实例和方法
行query操作的时候需要这个接口中的executeQuery(sql)方法,和上面的有所不同
//查询操作
public static void query {
String sql = "select * from sc";
Connection conn =null;//建立Connection实例
Statement st=null;//在已经建立的基础的连接向数据库发送sql语句,此时定义的st接口对象
ResultSet rs=null;//设置指向当前数据行的指针接口对象
try {
st = conn.createStatement();//Statement实例可以通过Connection实例的createStatement()获取
rs = st.executeQuery(sql);//执行给定的sql语句,返回单个reslutset对象
//注意所有查询的数据类型和查询的属性要和数据库中的相匹配
//打印在控制台中
while(rs.next()) {//循环将指针向下移一行
System.out.print(rs.getInt("Sno")+ " ");
System.out.print(rs.getInt("Cno")+ " ");
System.out.print(rs.getInt("Grade")+ " ");
// System.out.print(rs.getString("name") + " ");
// System.out.print(rs.getString("password") + " ");
// System.out.print(rs.getString("email")+ " ");
System.out.println();
}
}catch(Exception e) {
e.printStackTrace();
}finally {//以上没有问题的则进行finally的关闭操作
try {
rs.close();
}catch(Exception e2) {
}
try {
st.close();
}catch(Exception e3) {
}
try {
conn.close();
}catch(Exception e4) {
}
}
}
}