PreparedStatement接口是Statement接口的子接口,它直接继承并重载了Statement的方法。
创建PreparedStatement对象形式如下
输入参数的赋值
PreparedStatement中提供了大量的setXXX方法对输入参数进行赋值。根据输入参数的SQL类型应选用合适的setXXX方法。
代码如下:
package com.fdl.common;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionManage {
public static java.sql.Connection getConn()
{
String url="jdbc:oracle:thin:@192.168.1.126:1521:xe";
String driClass="oracle.jdbc.OracleDriver";
String userName="fdl";
String userPwd="fdl";
Connection conn=null;
try {
Class.forName(driClass);
conn = DriverManager.getConnection(url, userName, userPwd);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void closeConn(java.sql.Connection conn)
{
if(conn!=null)
{
try {
if(!conn.isClosed())
{
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
代码如下:
package com.fdl.common;
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class Tools {
//SQL类型的Date转化为String类型的
public static String fmtDateToString(java.sql.Date sqlDate)
{
java.util.Date uDate= fmtDateToUtilDate(sqlDate);
java.text.SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(uDate) ;
}
//SQL类型的Date转化为Util类型的Date
public static java.util.Date fmtDateToUtilDate(java.sql.Date sqlDate)
{
return new java.util.Date(sqlDate.getTime());
}
//Util类型的Date转化为SQL类型的Date
public static java.sql.Date fmtDateTosqlDate(java.util.Date lDate)
{
return new java.sql.Date(lDate.getTime());
}
}
代码如下:
package com.fdl.pojo;
import java.util.Date;
public class Student {
private int stuNo;
private String stuSex;
private String stuAddress;
private String stuName;
private Date stuBirthday;
public int getStuNo() {
return stuNo;
}
public void setStuNo(int stuNo) {
this.stuNo = stuNo;
}
public String getStuSex() {
return stuSex;
}
public void setStuSex(String stuSex) {
this.stuSex = stuSex;
}
public String getStuAddress() {
return stuAddress;
}
public void setStuAddress(String stuAddress) {
this.stuAddress = stuAddress;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public Date getStuBirthday() {
return stuBirthday;
}
public void setStuBirthday(Date stuBirthday) {
this.stuBirthday = stuBirthday;
}
public Student(int stuNo, String stuSex, String stuAddress, String stuName, Date stuBirthday) {
super();
this.stuNo = stuNo;
this.stuSex = stuSex;
this.stuAddress = stuAddress;
this.stuName = stuName;
this.stuBirthday = stuBirthday;
}
public Student() {
super();
}
@Override
public String toString() {
return "Student [stuNo=" + stuNo + ", stuSex=" + stuSex + ", stuAddress=" + stuAddress + ", stuName=" + stuName
+ ", stuBirthday=" + stuBirthday + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((stuAddress == null) ? 0 : stuAddress.hashCode());
result = prime * result + ((stuBirthday == null) ? 0 : stuBirthday.hashCode());
result = prime * result + ((stuName == null) ? 0 : stuName.hashCode());
result = prime * result + stuNo;
result = prime * result + ((stuSex == null) ? 0 : stuSex.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (stuAddress == null) {
if (other.stuAddress != null)
return false;
} else if (!stuAddress.equals(other.stuAddress))
return false;
if (stuBirthday == null) {
if (other.stuBirthday != null)
return false;
} else if (!stuBirthday.equals(other.stuBirthday))
return false;
if (stuName == null) {
if (other.stuName != null)
return false;
} else if (!stuName.equals(other.stuName))
return false;
if (stuNo != other.stuNo)
return false;
if (stuSex == null) {
if (other.stuSex != null)
return false;
} else if (!stuSex.equals(other.stuSex))
return false;
return true;
}
}
代码如下:
package com.fdl.dao;
import java.util.ArrayList;
import com.fdl.pojo.Student;
public interface IStudentDao {
public boolean insertStudent(Student stu);
public boolean updateStudent(Student stu);
public boolean deleteStudent(int stuNo);
public ArrayList getAllStudent();
public Student getStudentByStuNo(int stuNo);
public ArrayList getStudentBySql(String sql);
}
代码如下:
package com.fdl.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import com.fdl.common.ConnectionManage;
import com.fdl.common.Tools;
import com.fdl.dao.IStudentDao;
import com.fdl.pojo.Student;
public class StudentDaoImpl implements IStudentDao {
@Override
public boolean insertStudent(Student stu) {
boolean b = false;
Connection conn = ConnectionManage.getConn();
String sql = "insert into student(stuNo,stuName,stuBirthday,stuAddress,stuSex) values(SNO.NEXTVAL,?,?,?,?)";
try {
PreparedStatement pre = conn.prepareStatement(sql);
// stuName,
pre.setString(1, stu.getStuName());
// stuBirthday,
pre.setDate(2, Tools.fmtDateTosqlDate(stu.getStuBirthday()));
// stuAddress,
pre.setString(3, stu.getStuAddress());
// stuSex
pre.setString(4, stu.getStuSex());
b = pre.executeUpdate() > 0 ? true : false;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
ConnectionManage.closeConn(conn);
}
return b;
}
@Override
public boolean updateStudent(Student stu) {
boolean b = false;
Connection conn = ConnectionManage.getConn();
String sql = " update student set stuAddress=?,stuName=?,stuBirthday=?,stuSex=? WHERE stuno=?";
try {
PreparedStatement pre = conn.prepareStatement(sql);
pre.setString(1, stu.getStuAddress());
pre.setString(2, stu.getStuName());
pre.setDate(3, Tools.fmtDateTosqlDate(stu.getStuBirthday()));
pre.setString(4, stu.getStuSex());
pre.setInt(5, stu.getStuNo());
b = pre.executeUpdate() > 0 ? true : false;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
ConnectionManage.closeConn(conn);
}
return b;
}
@Override
public boolean deleteStudent(int stuNo) {
boolean b = false;
Connection conn = ConnectionManage.getConn();
String sql = "delete student where stuNo=?";
try {
PreparedStatement pre = conn.prepareStatement(sql);
pre.setInt(1, stuNo);
b = pre.executeUpdate() > 0 ? true : false;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
ConnectionManage.closeConn(conn);
}
return b;
}
@Override
public ArrayList getAllStudent() {
ArrayList list = new ArrayList();
Connection conn = ConnectionManage.getConn();
String sql = "select * from student";
try {
PreparedStatement pre = conn.prepareStatement(sql);
ResultSet rs = pre.executeQuery();
while (rs.next()) {
Student stu = new Student();
// stuNo number primary key,
int stuNo = rs.getInt("stuNo");
stu.setStuNo(stuNo);
// stuName nvarchar2(10) not null,
String stuName = rs.getString("stuName");
stu.setStuName(stuName);
// stuBirthday date,
java.sql.Date stuBirthday = rs.getDate("stuBirthday");
stu.setStuBirthday(Tools.fmtDateToUtilDate(stuBirthday));
// stuSex Nchar(1) default '男',
String stuSex = rs.getString("stuSex");
stu.setStuSex(stuSex);
// stuAddress nvarchar2(50)
String stuAddress = rs.getString("stuAddress");
stu.setStuAddress(stuAddress);
list.add(stu);
}
//
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
ConnectionManage.closeConn(conn);
}
return list;
}
@Override
public Student getStudentByStuNo(int stuNo) {
Student stu = null;
Connection conn = ConnectionManage.getConn();
String sql = "select * from student where stuNo=?";
try {
PreparedStatement pre = conn.prepareStatement(sql);
pre.setInt(1, stuNo);
ResultSet rs = pre.executeQuery();
if (rs.next()) {
stu = new Student();
// stuNo number primary key,
int stuNo1 = rs.getInt("stuNo");
stu.setStuNo(stuNo1);
// stuName nvarchar2(10) not null,
String stuName = rs.getString("stuName");
stu.setStuName(stuName);
// stuBirthday date,
java.sql.Date stuBirthday = rs.getDate("stuBirthday");
stu.setStuBirthday(Tools.fmtDateToUtilDate(stuBirthday));
// stuSex Nchar(1) default '男',
String stuSex = rs.getString("stuSex");
stu.setStuSex(stuSex);
// stuAddress nvarchar2(50)
String stuAddress = rs.getString("stuAddress");
stu.setStuAddress(stuAddress);
}
//
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
ConnectionManage.closeConn(conn);
}
return stu;
}
@Override
public ArrayList getStudentBySql(String sql) {
ArrayList list = new ArrayList();
Connection conn = ConnectionManage.getConn();
try {
PreparedStatement pre = conn.prepareStatement(sql);
ResultSet rs = pre.executeQuery();
while (rs.next()) {
Student stu = new Student();
// stuNo number primary key,
int stuNo = rs.getInt("stuNo");
stu.setStuNo(stuNo);
// stuName nvarchar2(10) not null,
String stuName = rs.getString("stuName");
stu.setStuName(stuName);
// stuBirthday date,
java.sql.Date stuBirthday = rs.getDate("stuBirthday");
stu.setStuBirthday(Tools.fmtDateToUtilDate(stuBirthday));
// stuSex Nchar(1) default '男',
String stuSex = rs.getString("stuSex");
stu.setStuSex(stuSex);
// stuAddress nvarchar2(50)
String stuAddress = rs.getString("stuAddress");
stu.setStuAddress(stuAddress);
list.add(stu);
}
//
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
ConnectionManage.closeConn(conn);
}
return list;
}
}
在前面 一个连接类 一个日期转化类
index.html
This is a html page.
---表格
---表示一行
---定义表头,表示一列,默认加粗,居中
---定义表格单元,表示一列,默认不加粗,居左