博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jdbc
阅读量:6516 次
发布时间:2019-06-24

本文共 3771 字,大约阅读时间需要 12 分钟。

package com.mm;

import java.sql.ResultSet;

import java.sql.SQLException;

// import com.mysql.jdbc.Statement;

//import java.sql.*;

import java.sql.Connection;

import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.DatabaseMetaData;

public class JDBCMySQL {

static String sql = null;

static MySQLHelper db1 = null;
static ResultSet ret = null;
public JDBCMySQL() {
// TODO Auto-generated constructor stub
}

public static void main(String[] args) throws SQLException, ClassNotFoundException {

// TODO Auto-generated method st

Connection conn = null;

PreparedStatement pStatementstmt = null;

/**************************************************************
* 1, 加载驱动
* 加载数据库驱动到jvm。 加载成功后,会将Driver类的实例注册到DriverManager类中。
* */
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
System.out.println("加载驱动失败");
e.printStackTrace();
}
/***************************************************************
* 2, 链接数据库
获得connect对象
* */
try {
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/new_schema2?useUnicode=true&characterEncoding=utf8&transformedBitIsBoolean=yes", "root",
"123456");
} catch (Exception e) {
System.out.println(" 链接数据库 失败");
e.printStackTrace();
}
/*创建一个Statement
•要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3
种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式:
*/
try {
//3, 操作数据库
String querySql = "select * from usr_table " ;
//connection 接口 进行 实例化操作
//创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。
pStatementstmt = conn.prepareStatement(querySql);
// 第一 个 ? 的内容
//stmt.setInt(1, 1);
//通过 statement 可以对数据库 增删改擦
Statement stmt=conn.createStatement();
/* 判断数据库是否存在 表 ,不存在就创建 */
/* 通过连接获取DatabaseMetaData,即调用connection.getMetaData() */
DatabaseMetaData metaData = conn.getMetaData();
//存储查询结果的对象,还可以操作数据。
ResultSet rs1 = metaData.getColumns(null, "new_schema2", "student_9" , null);
// Map map = new HashMap();
if(rs1.next()){
System.out.println("存在表 9");
}else{
System.out.println("  不 存在表 9 ");
String creaSql = "create table student_9 (NO char(20), name varchar(20), primary key(NO) )";
int result = stmt.executeUpdate(creaSql);
if (result != -1) {
System.out.println(" 创建 表成功");
}
}
//插入数据
/*
sql = "insert into student_9 (NO,name) values('008','陶伟基')";
stmt.executeUpdate(sql);
*/
for (int i = 20; i < 40; i++) {
String iString = Integer.toString(i);
sql = "insert into student_9 (NO,name) values("+iString+",'zhou')";
stmt.executeUpdate(sql);
}
sql = "select * from student_9 ";
ResultSet rsStudent = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值
System.out.println("学号\t姓名");
while (rsStudent.next()) {
System.out
.println(rsStudent.getString(1) + "\t" + rsStudent.getString(2));// 入如果返回的是int类型可以用getInt()
}
//记录集
ResultSet rs= stmt.executeQuery(querySql);
//执行查询
// ResultSet rs = pStatementstmt.executeQuery();
System.out.println(" 查询 表所以内容");
while (rs.next()) {
System.out.print(rs.getInt("id")+" : ");
System.out.print(rs.getString("name") + ", ");
System.out.println( rs.getString("age") + "");
System.out.println("----------------------------");
}
// 4,关闭数据库
/*关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声
明顺序相反:
1、关闭记录集
2、关闭声明
3、关闭连接对象
*/
if (rs != null){
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (pStatementstmt != null){
pStatementstmt.close();
}
if (conn != null){
conn.close();
}
// statement.execute(" CREATE TABLE emp ( empno INT(4), ename varchar(10) , job varchar(10), hiredare date, sal float(7,2) ) ");
// statement.execute(" insert into emp (empno, ename, job, hiredate, sal) values (6060, '李兴华', 'jingli', '2001-09-12', 2000.20) ");
} catch (Exception e) {
System.out.println("---- shi bai --- ");
e.printStackTrace();
// TODO: handle exception
}

}

}

转载地址:http://exofo.baihongyu.com/

你可能感兴趣的文章
使用C#生成随机密码(纯数字或字母)和随机卡号(数字与字母组合)
查看>>
CAS服务器端集群
查看>>
JAVA Collections框架
查看>>
进制转换
查看>>
ASCII码
查看>>
java常用四种排序源代码
查看>>
win7 下硬盘安装Redhat7
查看>>
Redis 分布式锁的正确实现方式
查看>>
程序猿知道英语词汇
查看>>
数据存储(两)--SAX发动机XML记忆(附Demo)
查看>>
谈谈SQL 语句的优化技术
查看>>
深入分析面向对象中的封装作用
查看>>
深刻理解Python中的元类(metaclass)
查看>>
Android View体系(六)从源码解析Activity的构成
查看>>
fnmatch源码阅读
查看>>
U9249 【模板】BSGS
查看>>
单片机小白学步系列(九) 用万用焊板搭建实验电路
查看>>
Node.js+Koa开发微信公众号个人笔记(一)准备工作
查看>>
Android 图片缓存处理
查看>>
阿里盒马领域驱动设计实践
查看>>