package comly520db;
import javasqlConnection;
import javasqlDriverManager;
import javasqlPreparedStatement;
import javasqlResultSet;
import javasqlResultSetMetaData;
import javasqlSQLException;
import javasqlStatement;
import javautilEnumeration;
import javautilHashtable;
import javautilList;
import javautilVector;
import javaxnamingContext;
import javaxnamingInitialContext;
import javaxsqlDataSource;
/
mysql数据库 *** 作类。
@author Ryoma
/
public class MySqlOperate implements SqlOperate {
private Connection con;
private String DBname;
private String sql;
/
Mysql数据库初始化包名
/
private String INIT_SQL_CTX = "orggjtmmmysqlDriver";
/
MYSQL数据库服务参数:服务器IP地址和端口
/
private String SQL_SERVICE = "jdbc:mysql://127001:3306autoReconnect=true&useUnicode=true&characterEncoding=utf-8&mysqlEncoding=utf8";
/
MYSQL数据库参数:系统管理用户
/
private String SQL_SYSTEM_USER = "root";
/
MYSQL数据库参数:系统管理密码
/
private String SQL_SYSTEM_PASSWORD = "123456";
/
初始化链接方法。此方法不需要再使用use Dbname;
/
public MySqlOperate() {
try {
Context ctx = new InitialContext();
if (ctx == null)
throw new Exception("Boom - No Context");
// java:comp/env/jdbc/imabled_mysql 为配置的连接池的jndi名称。
DataSource ds = (DataSource) ctx
lookup("java:comp/env/jdbc/imabled_mysql");
con = dsgetConnection();
} catch (Exception ex) {
exprintStackTrace();
}
}
/
指定库名的连接方法,此方法没有使用连接池,不赞成使用。
@param DBn
/
public MySqlOperate(String DBn) {
try {
ClassforName(thisINIT_SQL_CTX);
} catch (javalangClassNotFoundException e) {
eprintStackTrace();
}
try {
con = DriverManagergetConnection(thisSQL_SERVICE + "/" + DBn,
thisSQL_SYSTEM_USER, thisSQL_SYSTEM_PASSWORD);
DBname = DBn;
} catch (SQLException ex) {
exprintStackTrace();
}
}
public boolean add(String tablename, Hashtable searchdetail) {
Statement stmt = null;
Enumeration key_values = searchdetailkeys();
String key, value;
String temp = (String) key_valuesnextElement();
key = temp;
value = "'" + searchdetailget(temp) + "'";
while (key_valueshasMoreElements()) {
temp = (String) key_valuesnextElement();
key = key + "," + temp;
value = value + "," + "'" + searchdetailget(temp) + "'";
}
try {
useDB();
stmt = concreateStatement();
sql = "insert into " + tablename + " (" + key + ") " + " VALUES ("
+ value + ")";
stmtexecuteUpdate(sql);
return true;
} catch (SQLException ex) {
Systemoutprintln("执行的出错的sql语句:" + sql);
exprintStackTrace();
return false;
} finally {
closeStmt(stmt);
}
}
public boolean batchImport(String tablename, List list, String[] fields)
throws SQLException {
PreparedStatement ps = null;
String key, value;
key = toString(fields);
String[] values = new String[fieldslength];
for (int i = 0; i < valueslength; i++) {
values[i] = "";
}
value = toString(values);
try {
useDB();
consetAutoCommit(false);
Systemoutprintln("insert into " + tablename + " (" + key + ") "
+ " VALUES (" + value + ")");
ps = conprepareStatement("insert into " + tablename + " (" + key
+ ") " + " VALUES (" + value + ")");
String[] tmpData = null;
for (int i = 0; i < listsize(); i++) {
tmpData = (String[]) listget(i);
for (int j = 0; j < fieldslength && j < tmpDatalength; j++) {
pssetString(j + 1, tmpData[j]);
}
psaddBatch();// 添加执行的语句。
}
int[] count = psexecuteBatch();// 批量执行
concommit();
return true;
} catch (SQLException ex) {
throw ex;
} finally {
try {
if (ps != null) {
psclearParameters();
psclose();
ps = null;
}
} catch (SQLException e) {
throw e;
}
}
}
public boolean delete(String tablename, String filter) {
Statement stmt = null;
String value;
try {
useDB();
stmt = concreateStatement();
sql = "delete from " + tablename + " where " + filter;
stmtexecuteUpdate(sql);
return true;
} catch (SQLException e) {
Systemoutprintln("执行的出错的sql语句:" + sql);
eprintStackTrace();
return false;
} finally {
closeStmt(stmt);
}
}
public Hashtable list(String sql) {
Hashtable[] infoList = search(sql);
if (infoList == null || infoListlength < 1)
return null;
return infoList[0];
}
public Hashtable list(String tablename, String id) {
String sql = "select from " + tablename + " where id ='" + id + "'";
return list(sql);
}
public boolean modify(String tablename, Hashtable setdetail, String filter) {
Enumeration key_values = setdetailkeys();
Statement stmt = null;
String value;
String temp = (String) key_valuesnextElement();
value = temp + "='" + setdetailget(temp) + "'";
while (key_valueshasMoreElements()) {
temp = (String) key_valuesnextElement();
value = value + "," + temp + "='" + setdetailget(temp) + "'";
}
try {
useDB();
stmt = concreateStatement();
sql = "update " + tablename + " set " + value + " where " + filter;
int tag = stmtexecuteUpdate(sql);
if (tag == 0)
return false;
else
return true;
} catch (SQLException e) {
Systemoutprintln("执行的出错的sql语句:" + sql);
eprintStackTrace();
return false;
} finally {
closeStmt(stmt);
}
}
public Hashtable[] search(String sql) {
ResultSet rs;
Statement stmt = null;
try {
useDB();
stmt = concreateStatement();
rs = stmtexecuteQuery(sql);
return toHashtableArray(rs);
} catch (SQLException ex) {
Systemoutprintln("执行的出错的sql语句:" + sql);
exprintStackTrace();
return null;
} finally {
closeStmt(stmt);
}
}
public Hashtable[] search(String tablename, String[] fieldname,
String filter) {
return search(tablename, fieldname, filter, "");
}
public Hashtable[] search(String tablename, String[] fieldname,
String filter, String ordergroup) {
ResultSet rs;
Statement stmt = null;
String colname = fieldname[0];
for (int i = 1; i < fieldnamelength; i++) {
colname += "," + fieldname[i];
}
String queryString = "select " + colname + " from " + tablename;
if (!filterequals("")) {
queryString = queryString + " where " + filter;
}
if (!ordergroupequals("")) {
queryString = queryString + " " + ordergroup;
}
return search(sql);
}
/
@return the con
/
public Connection getCon() {
return con;
}
public void close() {
try {
if (con != null)
conclose();
} catch (SQLException e) {
eprintStackTrace();
}
}
/
返回使用的数据库
@return the dBname
/
public String getDBname() {
return DBname;
}
/
设置使用的数据库
@param bname
the dBname to set
/
public void setDBname(String bname) {
DBname = bname;
}
/
返回执行的sql语句
@return the sql
/
public String getSql() {
return sql;
}
/
本方法是为了再没有使用连接池的情况下,首先选择使用的数据库。
/
private void useDB() {
if (DBname != null && DBnameequals("")) {
String query = "use " + DBname;
Statement stmt = null;
try {
stmt = concreateStatement();
stmtexecute(query);
} catch (SQLException e) {
eprintStackTrace();
} finally {
if (stmt != null) {
try {
stmtclose();
} catch (SQLException e) {
eprintStackTrace();
}
}
}
}
}
/
关闭Statement
@param stmt
/
private void closeStmt(Statement stmt) {
if (stmt != null) {
try {
stmtclose();
} catch (SQLException e) {
eprintStackTrace();
}
}
}
/
@param ss
@return
/
private String toString(String[] ss) {
String s = "";
for (int i = 0; i < sslength; i++) {
s += ss[i] + ",";
}
if (sendsWith(","))
s = ssubstring(0, slength() - 1);
return s;
}
/
把ResultSet转换成Hashtable数组 javautilArraysasList 可以把数组转换成List
@param rs
@return
/
private Hashtable[] toHashtableArray(ResultSet rs) {
Vector searchresult = new Vector();
try {
ResultSetMetaData rsmd = rsgetMetaData();
int column = rsmdgetColumnCount();
while (rsnext()) {
Hashtable onerow = new Hashtable();
for (int i = 1; i <= column; i++) {
try {
String columnName = rsmdgetColumnName(i);
String columnValue = rsgetString(columnName);
onerowput(columnName, columnValue);
} catch (Exception e) {
}
}
searchresultadd(onerow);
}
Hashtable[] searchset = new Hashtable[searchresultsize()];
searchresulttoArray(searchset);
return searchset;
} catch (SQLException e) {
eprintStackTrace();
return null;
}
}
}
jsp中的增删改查是通过 *** 作特定条件来实现动态改变Map的值来实现的。
比如根据部门id来查询:
定义一个存放部门信息的map,如下:
Map<integer,Dept> map=new HashMap<integer,Dept>();
查询方法:
Iterator keys = mapkeySet()iterator();
while(keyshasNext()){
String key = (String)keysnext();
if("id"equals(key)){
Systemoutprintln("id为xx的员工信息");
}
}
添加是这样的mapput("001",new Dept());
删除是这样的mapremove();
更新是直接用mapput(key,value),这个方法会覆盖原来这个key对应的值,就相当于更新了
文件太大 上传不了。。。。我给你看下部分代码public class CommentServlet extends >
ODBC 连接数据库也不分J2EE ,JSEE啊?????
无论是J2EE还是JSEE都可以用ODBC连接数据库啊。
区别是有的,
J2EE是做Web程序的,他面对的是大量的用户同时访问服务器而且可能同时 *** 作数据库,如果你使用ODBC连接数据库,所有的用户都用同一个连接,频繁的创建销毁资源,这样导致速度很慢,效率低,所以WEB开发一半采用连接池技术,用架构做,现在常用的是Hibernate。
我要是没记错的话
JSEE开发桌面应用程序多,这样可能同时 *** 作的人少,一般一个桌面程序也就一个人在 *** 作,所以用ODBC也就足够了,可是虽然解决了效率的问题但是没有解决面向对象与面向关系的良好沟通。
J2EE ,JSEE后台的数据库连接技术是通用的不分j2ee和JSEE吧
关于JavaWeb增删改查的简单总结 原创
2020-04-25 13:14:49
走到天涯海角
码龄4年
关注
增删改查中最简单的功能是删除,通过Id来删除单表或者多表都是可以的。
增删改查中最重要的功能是查询,因为不仅仅是单表查询、连表查询需要用到查询,新增前和修改前也要使用到查询。
查询遇到的业务比如:
1登录:通过查询用户名和密码来找出用户,密码可以重复,但是用户名必须唯一,否则没办法找出单个用户。
(重要) 只要查询的字段是唯一的,都可以通过这个字段来查询出对应的单个对象或者集合。
什么字段是唯一的呢?
如:用户名必须唯一,文件名必须唯一,主键ID必须唯一等等,一时半会想不起来。
新增前,通过查询获得如:下拉框中的数据等
在新增时,通过获取下拉框的值或者输入框的值,就可以保存新增。
新增也会遇到循环插入的情况,如新增角色和修改角色,要循环插入数据到角色菜单关系表中。
循环插入数据的做法,我是用过两种方法,一种方法是使用c3p0,另一种是使用mybatis的foreach标签
修改前,通过查询,获得如:用户的信息,然后放到修改输入框,提高用户的使用体验。
修改时,通过隐藏区的Id,和输入框或者下拉框中的值,来进行保存修改。
文章知识点与官方知识档案匹配
Java技能树首页概览
92024 人正在系统学习中
打开CSDN APP,看更多技术内容
JavaWeb实现简单对数据库的增删改查_向晚而生的博客_web实现数
数据库:MySQL 连接池:Druid连接池 Github仓库地址:点我 jar包下载:点我!提取码:y4ef 参考:Javaweb实现增删改查 *** 作 *** 作 用JavaWeb部分知识实现对数据库的增删改查 只展示Student和Teacher的相关代码 一、效果图 二、数据库实现 1
继续访问
Web对数据库的增删改查(servlet+jsp+javaBean增删改查)
1开始之前的准备(servlet+jsp+javaBean增删改查) jsp:页面的请求和展示 在前台主要学了jsp进行页面的请求和展示 java后台 mysql数据库 学习了java如何进行数据库增删改查 JDBC重构Dao Dao进行sql语句 将数据库的获取结果响应到页面上
继续访问
最新发布 javaweb极简登录注册增删改查
javaweb极简登录注册增删改查
继续访问
简单的JavaWeb项目,基本的增删改查和分页查询等功能。
简单的JavaWeb项目,刘意老师整理,拥有登录,添加,删除,修改,分页查询,删除选中,复杂分页查询功能。
JavaWeb阶段案例--简易版管理图书系统(增删改查)
超详细JavaWeb阶段项目 --图书管理系统 -- 连接数据库在网页上实现图书的增删改查
继续访问
笔记--MySQL相关 *** 作
一 登录数据库 1 用户无密码: mysql -uroot -p mysql-> 2 用户有密码: MySQL -root -p[passwd] mysql-> 二 创建数据库: 查询: mysql> show databases; +--------------------+ | Database
继续访问
Javaweb--通过网页实现对数据库的增删查改
文章目录Javaweb--通过网页实现对数据库的增删查改1、功能需求2、技术选型2、最终效果图3、数据库准备4、前端开发5、后端开发 Javaweb–通过网页实现对数据库的增删查改 通常在写一些后台管理系统的时候,一定会有关于数据表格的增删查改的功能实现。最近也是闲来无事,做了这个小案例,希望能帮到有写这方面需求的朋友们。 1、功能需求 这次以单个的员工数据表为例,实现以下功能需求: 1、能够正常从数据库中读取相应数据。 2、设置分页,能够通过点击页码,进行数据更新,同时支持输入页码更新数据
继续访问
让我们在网页中实现数据库的增删改查~
目录主要思路首先让我们链接自己的数据库 indexjs对数据库设定一些用户规则 userjs做一个添加数据的静态网页 addhtml做一个主页面 listhtml最最最主要的js代码自我激励 主要思路 搭建网站服务器,实现客户端与服务器端的通信 连接数据库, 创建用户集合, 向集合中插入文档 当用户访问 /list时,将所有用户信息查询出来 1实现路由功能 1呈现用户列表页面 1 再点击修改按钮的时 将用户ID传递到当前页面 2 从数据库中查询当前用户信息 将用户信息展示到页面中 2从数据
继续访问
JavaWeb 增删改查快速开发总结
JavaWeb增删改查基本都是那一套,其中最繁琐 变动的便是围绕SQL语句、Servlet来展开,下面是我对这些左到一个小总结,希望能对您有所帮助首先项目搭建好之后就是最关键的SQL语句 Servlet代码 Servlet方法 然后是前端methods()方法 删除和批量删除(这里用element做了个删除提示)
继续访问
Java web阶段学习总结(华清远见)
经过web前端的学习之后,我们开启了Java web后端的学习。学习一样新的东西首先要了解它的原理,以及所要具备的一些条件。对于Servlet 的开发步骤一般有:新建一个Java web项目工程 --> 创建servlet类继承>
1、首先在电脑上启动数据库 ,在数据库中创建表,下面给出具体的SQL语句。
2、然后打开eclipse 创建新项目 JDBCTest,需要导入相关的jar包并构建路径,如图。
3、接着创建entity实体层如图对应表中的数据。
4、创建数据连接层conn 用于MySQL数据库的连接代码如图 如图。
5、创建dao层持久层,在里面编写数据库表的增删改查的具体 *** 作。
6、最后编写测试类 Test代码如图,就完成了。
以上就是关于请问如何对用Java对mysql进行增删改查等方法全部的内容,包括:请问如何对用Java对mysql进行增删改查等方法、Java 点击按钮实现数据的增删改查。不用数据库。、谁有java web中对数据库的增删改查的完整例子吗,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)