
要使用Java编写超市购物程序,您需要使用Java数据库编程技术来连接到您的数据库并执行相关的数据库 *** 作。在Java中,您可以使用JDBC(Java数据库连接)API来连接到数据库并执行SQL语句。例如,您可以使用JDBC API来执行以下 *** 作:
创建数据库连接
执行增删改查(CRUD) *** 作
提交或回滚事务
执行存储过程和函数
查询数据库元数据
此外,您还可以使用Java的面向对象编程技术来封装数据库 *** 作,以便更方便地在您的程序中使用。例如,您可以创建一个类来表示超市商品,并定义一些方法来执行商品的增删改查 *** 作。这样,您就可以在程序中通过调用这些方法来简单地完成对数据库的 *** 作,而不需要编写复杂的SQL语句。
一、使用工具:java语言、Myeclipse。
二、 *** 作步骤:
1、第一步:加载MySQL的JDBC的驱动
2、第二步:创建与MySQL数据库的连接类的实例
3、第三步:获取连接类实例con,用con创建Statement对象类实例 sql_statement
4、第四步:执行查询,用ResultSet类的对象,返回查询的结果
5、得出数据
三、注意事项:有几处是需要根据自身情况修改的
1、如下图中的url和账号,密码需要与你自己的相一致。
2、这些需要访问的数据必须要与数据库中的类型相互匹配,才能打印出正确的结果。
JDBC连接数据库
•创建一个以JDBC连接数据库的程序,包含7个步骤:
1、加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),
这通过javalangClass类的静态方法forName(String className)实现。
例如:
try{
//加载MySql的驱动类
ClassforName("commysqljdbcDriver") ;
}catch(ClassNotFoundException e){
Systemoutprintln("找不到驱动程序类 ,加载驱动失败!");
eprintStackTrace() ;
}
成功加载后,会将Driver类的实例注册到DriverManager类中。
2、提供JDBC连接的URL
•连接URL定义了连接数据库时的协议、子协议、数据源标识。
•书写形式:协议:子协议:数据源标识
协议:在JDBC中总是以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标识:标记找到数据库来源的地址与连接端口。
例如:(MySql的连接URL)
jdbc:mysql:
//localhost:3306/testuseUnicode=true&characterEncoding=gbk ;
useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为
gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。
3、创建数据库的连接
•要连接数据库,需要向javasqlDriverManager请求并获得Connection对象,
该对象就代表一个数据库的连接。
•使用DriverManager的getConnectin(String url , String username ,
String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和
密码来获得。
例如:
//连接MySql数据库,用户名和密码都是root
String url = "jdbc:mysql://localhost:3306/test" ;
String username = "root" ;
String password = "root" ;
try{
Connection con =
DriverManagergetConnection(url , username , password ) ;
}catch(SQLException se){
Systemoutprintln("数据库连接失败!");
seprintStackTrace() ;
}
4、创建一个Statement
•要执行SQL语句,必须获得javasqlStatement实例,Statement实例分为以下3
种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式:
Statement stmt = concreateStatement() ;
PreparedStatement pstmt = conprepareStatement(sql) ;
CallableStatement cstmt =
conprepareCall("{CALL demoSp( , )}") ;
1安装好jre环境和和jdk,设置好环境变量,很基础,网上教程很多;
2安装mysql数据库,不用设置数据源和环境变量,只是安装好就可以,具体过程见网上教程,有时候不好安装,可能是因为之前安装没有卸载干净等原因,多查一查怎么弄,多试一试就成功了;
3为了方便 *** 作数据库,为mysql安装一个可视化界面Navicat,安装过程超级简单,使用也超级简单,傻瓜 *** 作;
4怎么连接java和mysql呢,这个搞了好久,网上下载一个压缩包mysql-connector-java-508zip,解压,将其中的mysql-connector-java-508-binjar文件复制一份粘贴在C:\Program
Files\Java\jre7\lib\ext目录下,也就是放在jre\lib\ext下就行;
5接下来还要设置一次环境变量,第4步中的压缩包解压后,将解压后文件中mysql-connector-java-508-binjar添加到环境变量classpath中;
package comdao;import javasql;import javaxnamingContext;
import javaxnamingInitialContext;
import javaxnamingNamingException;
import javaxsqlDataSource;public class BaseDao {
/
创建数据库连接及关闭
/
// 打开连接
public static Connection getConnection() {
Connection con = null; / oracl 的连接 /
// try { // ClassforName("oraclejdbcdriverOracleDriver");
// con = DriverManagergetConnection(
// "jdbc:oracle:thin:@127001:1521:orcl", "bbs", "sa");
// } catch (ClassNotFoundException e) {
// eprintStackTrace();
// } catch (SQLException e) {
// eprintStackTrace();
// }
/ sqlerver 的连接 /
try {
ClassforName("commicrosoftsqlserverjdbcSQLServerDriver");
con = DriverManagergetConnection(
"jdbc:sqlserver://127001:1433;databasename=bbs", "sa",
"zhou");
} catch (ClassNotFoundException e) {
eprintStackTrace();
} catch (SQLException e) {
eprintStackTrace();
}
//
return con;
} // 关闭
public static void closeAll(Connection connection,
PreparedStatement pStatement, ResultSet res) {
try {
if (connection != null && (!connectionisClosed())) {
connectionclose();
}
if (res != null) {
resclose();
res = null;
}
if (pStatement != null) {
pStatementclose();
pStatement = null;
}
} catch (Exception e) {
eprintStackTrace();
}
}
}
对数据库增删改查package comdao;import javasqlConnection;
import javasqlPreparedStatement;
import javasqlResultSet;
import javasqlSQLException;
import javautilArrayList;
import javautilList;import comentityNews;public class NewsDao {
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
/
添加新闻
@param news
@return
/
public boolean newsAdd(News news){
boolean result=false;
String sql="insert into news values(,)";
con=BaseDaogetConnection();
try {
pstmt=conprepareStatement(sql);
pstmtsetString(1, newsgetContent());
pstmtsetString(2, FormatTimenewTime());
int i = 0;
i = pstmtexecuteUpdate();
if (i > 0)
result = true;
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
return result;
}
/
修改新闻
@param news
@return
/
public boolean updateNews(News news){
boolean result=false;
con=BaseDaogetConnection();
try {
pstmt=conprepareStatement("update news set content= ,writedate= where newsid=");
pstmtsetString(1, newsgetContent());
pstmtsetString(2, FormatTimenewTime());
pstmtsetInt(3, newsgetNewsID());
int i = 0;
i = pstmtexecuteUpdate();
if (i > 0)
result = true;
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
return result;
}
/
删除新闻
@param news
@return
/
public boolean deleteNews(News news){
boolean result=false;
String sql=Stringformat("delete from news where newsid=%d", newsgetNewsID());
con=BaseDaogetConnection();
try {
pstmt=conprepareStatement(sql);
int i = 0;
i = pstmtexecuteUpdate();
if (i > 0)
result = true;
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
return result;
}
/
删除新闻 重载
@param newsId
@return
/
public boolean deleteNews(int newsId){
boolean result=false;
String sql=Stringformat("delete from news where newsid=%d", newsId);
con=BaseDaogetConnection();
try {
pstmt=conprepareStatement(sql);
int i = 0;
i = pstmtexecuteUpdate();
if (i > 0)
result = true;
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
return result;
}
/
查询所有的新闻
@return
/
public List<News> selectAllNews(){
List<News> list=new ArrayList<News>();
String sql="select from Users";
con=BaseDaogetConnection();
try {
pstmt=conprepareStatement(sql);
rs=pstmtexecuteQuery();
while(rsnext()){
News news=new News();
newssetNewsID(rsgetInt(1));
newssetContent(rsgetString(2));
newssetWriteDate(rsgetString(3));
listadd(news);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
} finally {
BaseDaocloseAll(rs, pstmt, con);
}
return list;
}
/
查询单个
@return
/
public News selectOneNews(){
News news=new News();
con=BaseDaogetConnection();
try {
pstmt=conprepareStatement("select top 1 from news order by newsid desc");
rs=pstmtexecuteQuery();
while(rsnext()){
newssetNewsID(rsgetInt(1));
newssetContent(rsgetString(2));
newssetWriteDate(rsgetString(3));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
} finally {
BaseDaocloseAll(rs, pstmt, con);
}
return news;
}
}
实体类package comentity;import javaioSerializable;
public class News implements Serializable{
private int newsID;
private String content;
private String writeDate; public News() {
super();
// TODO Auto-generated constructor stub
} public News(String content, String writeDate) {
super();
thiscontent = content;
thiswriteDate = writeDate;
} public News(int newsID, String content, String writeDate) {
super();
thisnewsID = newsID;
thiscontent = content;
thiswriteDate = writeDate;
} public int getNewsID() {
return newsID;
} public void setNewsID(int newsID) {
thisnewsID = newsID;
} public String getContent() {
return content;
} public void setContent(String content) {
thiscontent = content;
} public String getWriteDate() {
return writeDate;
} public void setWriteDate(String writeDate) {
thiswriteDate = writeDate;
}
}
以上就是关于数据库如何用java写超市购物程序全部的内容,包括:数据库如何用java写超市购物程序、如何在Java程序中访问mysql数据库中的数据并进行简单的 *** 作、如何使用JAVA创建数据库表。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)