项目中连接数据库,类的封装;

一.首先创建一个类,封装数据库和个人信息:

package com.yxq.dao;

public class Constants {
public static String url ="jdbc:mysql://127.0.0.1:3306/personblog";
public static String className="com.mysql.jdbc.Driver";
public static String userName ="root";
public static String password = "root";

}

以后只要修改这个类的信息;就可以了;

还要把jar包,添加到项目中;

二、封装一个类来连接数据库和关闭数据库:

package com.yxq.dao;
/*导入所需的包*/
import java.sql.Connection;//表示链接到某个数据库的链接;
import java.sql.DriverManager;//用来获取数据库链接的类;
import java.sql.ResultSet;//封装查询结果集的类;
import java.sql.SQLException;
import java.sql.Statement; //用来执行SQL语句的类;

public class DB {
// 获取数据的连接;
public static Connection getConnection() throws Exception{
try{
Class.forName(Constants.className);
Connection con = DriverManager.getConnection(Constants.url,Constants.userName,Constants.password);
return con;
}catch (Exception e) {
e.printStackTrace();
System.out.println("连接失败");
return null;
}

}
// 关闭Statement对象;
public static void closeStatement(Statement stmt) throws Exception{
try{
if(stmt !=null){
stmt.close();
System.out.println("关闭Statement成功");
}
}catch (Exception e) {
e.printStackTrace();
System.out.println("关闭Statement失败");
}
}
// 关闭ResultSet对象;
public static void closeResultSet(ResultSet rs) throws Exception{
try{
if(rs!=null){
rs.close();
System.out.println("关闭ResultSet成功");
}
}catch (Exception e) {
e.printStackTrace();
System.out.println("关闭ResultSet失败");
}
}
//关闭connection对象;
public static void closeConnection(Connection conn,Statement stm,ResultSet rs)throws Exception{
try{
if(rs!= null){
rs.close();
System.out.println("关闭rs成功");
}
if(stm != null){
stm.close();
System.out.println("关闭stm成功");
}
if(conn!=null){
conn.close();
System.out.println("关闭Connection成功");
}
}catch (Exception e) {
e.printStackTrace();
System.out.println("关闭Connection失败");
}
}
}

三.创建一个特定的类,来增删改查数据里特定的一张表;

package com.yxq.dao;

import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.yxq.valuebean.Model_Artical;
import com.yxq.dao.DB;

public class ArticalDao {
/*
* @Description: 查询文章;
* @param :参数是start,end ,分别是数据的第几条数据,和一次查询的数量;
* @return:返回查询的记录,封装在List中。
* */
public List<Model_Artical> query(int start,int end) throws Exception{
Connection con = DB.getConnection();
Statement stm = con.createStatement();
String sql="SELECT * FROM tbl_artical limit "+start+","+end+"";
ResultSet rs= stm.executeQuery(sql);
List<Model_Artical> model_artical = new ArrayList<Model_Artical>();
Model_Artical artical= null;
while(rs.next()){
artical = new Model_Artical();
artical.setArtical_Id(rs.getInt(1));
artical.setArtical_Name(rs.getString("Artical_Name"));
artical.setArtical_Content(rs.getString("Artical_Content"));
artical.setArtical_Date(rs.getDate("Artical_Date"));
artical.setArtical_Glancenumber(rs.getInt("Artical_Glancenumber"));
artical.setUser_Id(rs.getInt("User_Id"));
artical.setArticalTypel_Id(rs.getInt("ArticalTypel_Id"));
artical.setArtical_Character(rs.getString("Artical_Character"));
model_artical.add(artical);
}
DB.closeConnection(con,stm,rs);
return model_artical;
}
/*
* @Description: 查询文章;
* @param :参数是typeid,start,end ,分别是文章的typeid值和数据的第几条数据,和一次查询的数量;
* @return:返回查询的记录,封装在List中。
* */
public List<Model_Artical> querytype(int typeid,int start,int end) throws Exception{
Connection con = DB.getConnection();
Statement stm = con.createStatement();
String sql="SELECT * FROM tbl_artical where ArticalTypel_Id = ‘"+typeid+"‘ limit "+start+","+end+"";
ResultSet rs= stm.executeQuery(sql);
List<Model_Artical> model_artical = new ArrayList<Model_Artical>();
Model_Artical artical= null;
while(rs.next()){
artical = new Model_Artical();
artical.setArtical_Id(rs.getInt(1));
artical.setArtical_Name(rs.getString("Artical_Name"));
artical.setArtical_Content(rs.getString("Artical_Content"));
artical.setArtical_Date(rs.getDate("Artical_Date"));
artical.setArtical_Glancenumber(rs.getInt("Artical_Glancenumber"));
artical.setUser_Id(rs.getInt("User_Id"));
artical.setArticalTypel_Id(rs.getInt("ArticalTypel_Id"));
artical.setArtical_Character(rs.getString("Artical_Character"));
model_artical.add(artical);
}
DB.closeConnection(con,stm,rs);
return model_artical;
}
/*创建用来实现查看文章详细内容的方法---queryArticleSingle();
* 该方法带有一个参数。表示文章的id*
*/
public Model_Artical queryArticleSingle(int id) throws Exception{
String sql = "select * from tbl_artical where Artical_Id = ‘"+id+"‘";
Connection con = DB.getConnection();
Statement stm = con.createStatement();
ResultSet rs= stm.executeQuery(sql);
try{
while(rs.next()){

Model_Artical artical = new Model_Artical();
artical.setArtical_Id(rs.getInt(1));
artical.setArtical_Name(rs.getString("Artical_Name"));
artical.setArtical_Content(rs.getString("Artical_Content"));
artical.setArtical_Date(rs.getDate("Artical_Date"));
artical.setArtical_Glancenumber(rs.getInt("Artical_Glancenumber"));
artical.setUser_Id(rs.getInt("User_Id"));
artical.setArticalTypel_Id(rs.getInt("ArticalTypel_Id"));
DB.closeConnection(con,stm,rs);
return artical;
}
}catch(Exception e){
e.printStackTrace();
System.out.println("按文章类别查看文章失败");
DB.closeConnection(con,stm,rs);
return null;

}
return null;

}
/* operationArtical()方法 实现对数据库进行其他的更新操作,如添加,修改和删除*/
public boolean operattionArtical(String oper,Model_Artical artical) throws Exception{
Connection con = DB.getConnection();
Statement stm = con.createStatement();
String sql = null;
if(oper.equals("add")){
sql = "insert into tbl_artical (Artical_Name,Artical_Content,Artical_Date,Artical_Glancenumber,ArticalTypel_Id,User_Id,Artical_Character) values(‘"+artical.getArtical_Name()+"‘,‘"+artical.getArtical_Content()+"‘,‘"+new Date(artical.getArtical_Date().getTime())+"‘,‘"+artical.getArtical_Glancenumber()+"‘,‘"+artical.getArticalTypel_Id()+"‘,‘"+artical.getUser_Id()+"‘,‘"+artical.getArtical_Character()+"‘)";
int rs = stm.executeUpdate(sql);
DB.closeConnection(con,stm,null);
if( rs > 0 ){
return true;
}else{
return false;
}
}
return false;

}
/*创建一个方法是删除相应的文章*/
public boolean deleteartical(int articalId) throws Exception{
Connection con = DB.getConnection();
Statement stm = con.createStatement();
String sql="delete from tbl_artical where Artical_Id ="+articalId;
int rs = stm.executeUpdate(sql);
if( rs > 0 ){
DB.closeConnection(con,stm,null);
System.out.println("删除成功");
return true;
}else{
DB.closeConnection(con,stm,null);
System.out.println("删除失败");
return false;
}
}
/*创建一个修改相对应的文章*/
public boolean modifyarticle(int articleId,String articlecontent,String articlename,String character,int typeid) throws Exception{
Connection con = DB.getConnection();
Statement stm = con.createStatement();
String sql="UPDATE tbl_artical SET Artical_Content =‘"+articlecontent+"‘,Artical_Name=‘"+articlename+"‘,Artical_Character =‘"+character+"‘,ArticalTypel_Id="+typeid+" where Artical_Id ="+articleId;
int rs = stm.executeUpdate(sql);
if( rs > 0 ){
DB.closeConnection(con,stm,null);
System.out.println("修改成功");
return true;
}else{
DB.closeConnection(con,stm,null);
System.out.println("修改失败");
return false;
}
}
/*
* @Description: 计算某一类文章或者是全部文章的总数;
* @param :参数是typeid,判断是某一类文章,还是数据库里的全部文章,
* @return:返回数量;
* */
public int articalnum(int typeid) throws Exception{
String sql;
if(typeid > 0){
sql = "SELECT count(*) FROM tbl_artical where ArticalTypel_Id = ‘"+typeid+"‘";
}else{
sql="SELECT count(*) FROM tbl_artical";
}
Connection con = DB.getConnection();
Statement stm = con.createStatement();
ResultSet rs= stm.executeQuery(sql);
int i = 0;
while(rs.next()){
i = rs.getInt(1);
}
DB.closeConnection(con,stm,rs);
return i;

}

}

时间: 2024-10-05 01:39:39

项目中连接数据库,类的封装;的相关文章

开发技巧----------项目中常量类的定义方式

问题: 有开发经验的同学都知道,常量类是一个最常用的定义数据字典的方式.但是随着项目的开发时间和开发团队的变化经常会出现2中特别苦逼的情况.第一种情况是项目中到处都能看到各种各样的常量类:第二种情况是一个常量类里定义非常多的常量,甚至有的超过100了.这两种情况的缺点估计大家都非常的清楚,第一种代码离散.冗余.维护难:第二种也是维护难,更痛苦的时候用ide的时候很难找到自己需要的常量. 解决办法: 1.使用静态内部类对常量进行分组(可以多级分组,但是建议最多3级) 2.外部文件(这里不讨论) 3

.net core项目中引用.net framework封装的dll库

https://blog.csdn.net/sharphou/article/details/80746551 A----------如何安装IIS [Server Hosting]--------------------------------------------------------------------------------------------Asp.Net Core 2.0 之旅---在window 上 部署WEB应用程序 像样点的教程 安装 core **https://

php中curl类常用方法封装和详解

curl对于PHP开发这来说是经常用到的一个类. 在抓取远程文件或是内容的时候就更常用了. 不过原生态的curl类比较复杂, 尤其对于新手来说,很多参数很容易让人头晕,现在好了. 这个类是封装了几个常用的curl函数. 可以实现抓取远程文件,模拟提交数据等功能. /* * 来源: http://www.xuehuwang.com/ * 作者: 雪狐博客 * 类用途: 实现抓取原创内容 */ class CURL { var $cookie_file; // 设置Cookie文件保存路径及文件名

Maven项目中java类报错-Cannot resolve symbol

电脑蓝屏了,强制重启之后再打开IDEA里面的项目,所有Java类文件都在报Cannot resolve symbo错误,可以确定所有依赖的包都有引用且jar包没有冲突. 经查询找到这个解决方法: 在IDEA中 点击 File   ->   Invalidate Caches/Restart,清理了缓存重启IDEA就解决了 原文地址:https://www.cnblogs.com/yw-ah/p/8508314.html

C++中的类与封装

1,类的组合: 1,类不是孤立存在的,类之间都会有一些关系,组合就是类的基本关系之一: 2,电脑一般而言是由 CPU.内存.主板.键盘和硬盘等部件组合而成: 3,学习电脑组装需要多少时间?学习电脑组装是否需要学习显示器.键盘.鼠标.主板.内存等部件的设计与制造? 1,我们可以使用一个类,但是可能对类的内部状态一无所知: 2,类的封装: 1,类通常分为以下两个部分: 1,类的实现细节: 1,使用者往往可以忽略: 2,类的使用方式: 2,当使用类时,不需要关心其实现细节: 1,普通用户使用手机: 1

android中Log类的封装

1.为了方便的使用Log打印日志,以及后续方便撤销日志打印,所以对Log类进行封装是一件好事. 1 package market.phone; 2 3 import android.util.Log; 4 5 /** 6 * 自己封装的log类,按是调试或者是实际 7 * Created by Administrator on 2017/6/13. 8 */ 9 10 public class LogU { 11 /*m默认不打印Log,如果要打印,置为true*/ 12 private sta

eclipseg的javaweb 项目中创建类的时候出现creation of element failed MALFORMED

出现这种情况的解决办法是查看该工作区间中所有的web项目中的 WebContent-------WEB-INF----lib查看里面的文件是不是全是.jar

项目中常用类

1.分页数据模型:PagedDataModel.cs 用处:将分页的数据,封装到类中 public class PagedDataModel<T> { /// <summary> /// 总页数 /// </summary> public int PageCount; /// <summary> /// 总行数 /// </summary> public int RowCount; /// <summary> /// 当前页码 ///

Eclipse中一个Web项目引用另一个项目中的类

太久没有接触Webapps项目,今天忽然得到一对 Dynamic Web + Java Project SDK形式的Samples,却不知道如何正确引用,找到以下解决办法: 项目属性Java Build Path中add,编译错误就会消失了.但是在发布启动时,会报java.lang.ClassNotFoundException. 经过调试,在发布路径里没有找到被引用项目的文件.解决方法: 第一步,项目属性Java Build Path中,Libraries–Add Class Folder. 第