在lib下导入数据库链接包
-DAO (Data Access Objects) 数据访问对象是第一个面向对象的接口,DAO模式是通过对业务层提供数据抽象层接口。它显露了 Microsoft Jet 数据库引擎(由 Microsoft Access 所使用),并允许 Visual Basic 开发者通过 ODBC 象直接连接到其他数据库一样,直接连接到 Access 表。DAO 最适用于单系统应用程序或小范围本地分布使用。DAO模式是通过对业务层提供数据抽象层接口。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class BaseDao {
Connection cn=null;
PreparedStatement pstm=null;
ResultSet rs=null;
public boolean getConnection(){
try{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/kgcnews";
cn=DriverManager.getConnection(url,"root","5869413");
}catch (ClassNotFoundException e) {
e.printStackTrace();
return false;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
return true;
}
public int executeUpdate(String sql,Object []parames){
int updateRows=0;
if(this.getConnection()){
try {
pstm=cn.prepareStatement(sql);
for(int i=0;i<parames.length;i++){
pstm.setObject(i+1, parames[i]);
}
updateRows = pstm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
return updateRows;
}
public ResultSet executeSQL(String sql,Object[] parmes){
if(this.getConnection()){
try{
pstm=cn.prepareStatement(sql);
for (int i = 0; i < parmes.length; i++) {
pstm.setObject(i+1, parmes[i]);
}
rs=pstm.executeQuery();
}catch(SQLException e){
e.printStackTrace();
}
}
return rs;
}
public boolean closeResource(){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
if(pstm!=null){
try{
pstm.close();
}catch (SQLException e) {
e.printStackTrace();
return false;
}
}
if(cn!=null){
try{
cn.close();
}catch (SQLException e) {
e.printStackTrace();
return false;
}
}
return true;
}
}
import java.sql.Date;
public void addNews(int id,int categoryid,String title,String summary,String content,String author,Date createdate);
public void deleteNews(int id);
public void updateNews(int id,String title) ;
public void getNesList() ;
public void getNewsByTitle(String title);
创建NewsDaoImpl类继承BaseDao并实现NewsDao1 | |
---|
| |
- SQL语句中?号为占位符,负责给Object[] parames传值;一定按?号顺序写
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import cn.kgc.dao.BaseDao;
import cn.kgc.dao.NewsDao1;
public class NewsDaoImpl extends BaseDao implements NewsDao1 {
Connection connection;
PreparedStatement stmtStatement=null;
ResultSet rSet=null;
public void addNews(int id,int categoryid,String title,String summary,String content,String author,Date createdate){
try {
String sql="INSERT INTO news_detail(id,categoryid,title,summary,content,author,createdate) VALUES(?,?,?,?,?,?,?)";
Object [] params={id,categoryid,title,summary,content,author,new Timestamp(createdate.getTime())};
int i= this.executeUpdate(sql, params);
if(i>0){
System.out.println("插入新闻成功");
}
}finally{
this.closeResource();
}
}
public void deleteNews(int id){
try {
String sql="DELETE FROM news_detail WHERE id=?";
Object[] parames={id};
int i=this.executeUpdate(sql,parames);
if (i>0) {
System.out.println("删除成功");
}
}finally{
this.closeResource();
}
}
public void updateNews(int id,String title) {
try {
String sql="UPDATE news_detail SET title=? WHERE id=?";
Object parames[]={title,id};
int i=this.executeUpdate(sql, parames);
if (i>0) {
System.out.println("修改新闻成功");
}
}finally{
this.closeResource();
}
}
public void getNesList() {
try {
String sql="SELECT id,categoryid,title,summary,content,author,createdate FROM news_detail";
Object [] params={};
ResultSet rSet=this.executeSQL(sql, params);
while(rSet.next()){
int id=rSet.getInt("id");
int categoryid=rSet.getInt("categoryid");
String newsTitle=rSet.getString("title");
String summary=rSet.getString("summary");
String content=rSet.getString("content");
String author=rSet.getString("author");
Timestamp createdate=rSet.getTimestamp("createdate");
System.out.println(id+"\t"+categoryid+"\t"+newsTitle+"\t"+summary+"\t"+content+"\t"+author+"\t"+createdate);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeResource();
}
}
public void getNewsByTitle(String title){
try{
String sql="SELECT id, title FROM news_detail where title=?";
Object []parames={title};
ResultSet rs=this.executeSQL(sql, parames);
while(rs.next()){
int id=rs.getInt("id");
String title1=rs.getString("title");
System.out.println(id+"\t"+title);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeResource();
}
}
public static void main(String[] args) {
NewsDao1 dao1=new NewsDaoImpl();
dao1.getNesList();
dao1.getNewsByTitle("Java Web开课啦");
}
}