您的位置:首页 > 编程语言 > Java开发

java中jdbc的基础知识

2013-08-05 22:39 495 查看
JDBC 配置环境

1.  切换视图:MyEclipse Database Explorer

2.  在左边工作区右键选择“NEW”。(先在oracle中创建hasen用户,密码hasen)

Drivertemplate< Oracle (Thin driver) >

Drivername < oracle.jdbc.Driver.OracleDriver >

ConnectionURL < jdbc:oracle:thin:@127.0.0.1:1521:XE >

Username <hasen>

Password<hasen>

DriverJars--Add JAR-- ojdbc14.jar

 
3.选择“Save password”---- “finish”

4.切换回“MyEclipse Java Enterprise”

5.新建一个“Java Project”

6.在src目录下新建“test.sql”文件

7.写入查询语句

8.切换视图:MyEclipse Database Explorer

9.选择左边的“oracle.jdbc.driver.OracleDriver”,右键选择“connect”,

10.在connection的下拉框中选择“oracle.jdbc.driver.OracleDriver”,选择要执行的SQL语句,点击向右的三角箭头,执行语句。

create table class and studentin oracle database.

create table class(
id number(10) primary key,
name varchar2(25)
);
insert into class values(1,'HT1303');

create table student(
id number(10) primary key ,
name varchar2(15) unique,
registerdate date default sysdate,
age number(3) not null,
gender varchar2(1) check (gender in ('0','1')),
class_id number(10) ,
foreign key(class_id) references class (id) on delete cascade
);

file:Student.java(class)

public class Student {
private int id;
private String name ;
private Date registerdate;
private int age;
private String gender;
private int class_id ;


file:TestJDBC

public class TestJDBC {
private List<Student> students;
public List<Student> getStudents() {
return students;
}
public static void main(String[] args) {
try {
/*
* 1.注册数据库驱动,使用反射向虚拟机中注册
* oracle :oracle.jdbc.driver.OracleDriver
* mysql:com.mysql.jdbc.Driver
* sqlite:org.sqlite.JDBC
*/
Class.forName("oracle.jdbc.driver.OracleDriver");
/*
*2.获取数据库连接
*@para1 连接数据库的URL
*oracle(jdbc:oralce:thin:@127.0.0.1:1521:XE)
*Mysql(jdbc:mysql://127.0.0.1:3306/databaseName)
*连接sqlite3的URL(jdbc:sqlite:stu.db)
*@para2 用户名
*@para3 密码
*/
Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:XE", "hasen", "hasen");
//System.out.println(connection);
/*
* 3.由connection创建执行执行SQL的statement
*/
String sql = "select * from student";
Statement stmt = connection.createStatement();
/*
* 4.执行SQL语句
*/
ResultSet rs = stmt.executeQuery(sql);
/*
* 5.处理结果集
* 	使用rs.next()判断是否还有下一条
* 	获取结果可以通过列名或者列的顺序获得
*/
System.out.println("id\tname\tregisterdate\tage\tgender\tclass_id");
while(rs.next()){
int id = rs.getInt("id");
System.out.print(id+"\t");
String name = rs.getString("name");
//String name = rs.getString(1);
System.out.print(name +"\t");
System.out.print(rs.getDate("registerdate")+"\t");
System.out.print(rs.getInt("age")+"\t");
System.out.print(rs.getString("gender")+"\t");
System.out.println(rs.getInt("class_id")+"\t");
}
/*
* 6.关闭资源
*/
rs.close();
stmt.close();
connection.close();
} catch (Exception e) {

e.printStackTrace();
}
}
}

file:TestDML.java (连续执行一系列命令)

public class TestDML {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:XE", "hasen", "hasen");
String sql1 = "insert into student values(my_seq.nextVal,'one4',sysdate,21,'0',1)";
String sql2 = "insert into student values(my_seq.nextVal,'one5',sysdate,23,'1',1)";
String sql3 = "insert into student values(my_seq.nextVal,'one6',sysdate,22,'0',1)";
String sql4 = "update student set registerdate = " +
"to_date('1979-05-18 23:20:00','yyyy-mm-dd hh24:mi:ss') where name = 'two'";
//String sql5 = "delete from student where id = 8" ;
Statement stmt = connection.createStatement();
stmt.addBatch(sql1);
stmt.addBatch(sql2);
stmt.addBatch(sql3);
stmt.addBatch(sql4);
//stmt.addBatch(sql5);
stmt.executeBatch();
stmt.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

file:TestPSTMT.java

public class TestPSTMT {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:XE", "hasen", "hasen");
//String sql = "insert into student values(my_seq.nextVal,'one4',sysdate,21,'0',1)";
String sql = "insert into student values(my_seq.nextVal,?,?,?,?,?)";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, "boss");
pstmt.setDate(2, new Date(System.currentTimeMillis()));
pstmt.setInt(3, 31);
pstmt.setString(4, "1");
pstmt.setInt(5, 1);
pstmt.execute();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

用oracle.properties配置文件实现一个工厂,该工厂用来产生连接

file:oracle.properties (press ALT+ENTER tosee the path)

driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@127.0.0.1:1521:XE
username=hasen
password=hasen

file:JDBCConnectionFactory.java

public class JDBCConnectionFactory {
private static String URL;
private static String DRIVERNAME ;
private static String USERNAME ;
private static String PASSWORD;
static {
Properties properties = new Properties();
try {
properties.load(
new FileInputStream (
new File("D:/Workspaces/MyEclipse 10/Corejava/src/jdbc/oracle.properties")));
URL = properties.getProperty("url");
DRIVERNAME = properties.getProperty("driver");
USERNAME = properties.getProperty("username");
PASSWORD = properties.getProperty("password");
Class.forName(DRIVERNAME);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection() {

try {
return DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
System.out.println(JDBCConnectionFactory.getConnection());
}
}

file :TestFactory.java

public class TestFactory {
private List<Student> students = new ArrayList<Student>();
public List<Student> getStudents() {
Connection connection= JDBCConnectionFactory.getConnection();
try {
Statement stmt = connection.createStatement();
String sql = "select * from student";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()) {
Student student = new Student() ;
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setRegisterdate(rs.getDate("registerdate"));
student.setAge(rs.getInt("age"));
student.setGender(rs.getString("gender"));
student.setClass_id(rs.getInt("class_id"));
students.add(student);
}
rs.close();
stmt.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
return students;
}
public static void main(String[] args) {
TestFactory tf = new TestFactory();
List<Student> list = tf.getStudents();
Iterator<Student> it = list.iterator();
while(it.hasNext()) {
Student s = it.next();
System.out.println(s);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: