1.连接数据库:

import java.sql.Connection;

import java.sql.DriverManager;

public class DBConnection {

static String driver = "com.mysql.jdbc.Driver";

static String url= "jdbc:mysql://localhost:3306/mydatabase01?useUnicode=true&characterEncoding=utf-8";

static String user = "root";

static String password = "123456";

public Connection conn;

static {

try {

System.out.println("驱动加载开始=====================");

Class.forName(driver);

System.out.println("驱动加载完毕==================");

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}// 加载驱动程序

}

public DBConnection() {

try {

conn = (Connection) DriverManager.getConnection(url, user, password);// 连接数据库

if(!conn.isClosed())

System.out.println("Succeeded connecting to the Database!");

} catch (Exception e) {

e.printStackTrace();

}

}

public void close() {

try {

this.conn.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

2.数据库操作

import java.lang.reflect.Field;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

public class MysqlUtil {

public static void main(String[] args) {

// TODO Auto-generated method stub

String sqlstr = "INSERT INTO student (stuname,class,sex,major,mathstore,engstore,yuwenstore) VALUES('";

sqlstr += "赵公共','大四1班','2','计算机专业','50','80','100')";

String delstr = " insert into student (stuname,class,sex,major,mathstore) values ('彭小杰','初三','1','全专业',90) ";

System.out.println(add(delstr));

}

//插入操作

public static int add(String sql) {

int i=0;

DBConnection db = new DBConnection();

try {

PreparedStatement preStmt = (PreparedStatement) db.conn.prepareStatement(sql);

preStmt.executeUpdate();

//Statement statement = (Statement) db.conn.createStatement();

//statement.executeUpdate(sql);

preStmt.close();

db.close();//关闭连接

i = 1;

} catch (Exception e) {

e.printStackTrace();

}

return i;//返回影响的行数,1为执行成功

}

//查找操作

public static List< Map > show(String sql, String[] params){

// String sql ="select * from employee";

List< Map > listmap = new ArrayList<>();

DBConnection db = new DBConnection();

ResultSet rs = null;

System.out.println("-----------------");

System.out.println("姓名" +"\t"+ "邮箱" +"\t"+ "日期");

System.out.println("-----------------");

try {

Statement stmt = (Statement) db.conn.createStatement();

rs = (ResultSet) stmt.executeQuery(sql);//返回链表

while(rs.next()){

Map map = new HashMap();

for(int i = 0; i < params.length; i++) {

map.put(params, rs.getString(params));

}

listmap.add(map);

}

rs.close();

db.close();//关闭连接

} catch (SQLException e) {

e.printStackTrace();

}

return listmap;

}

//更新操作

public static int update( String sql ) {

int i =0;

// String sql="update employee set email=?,pwd=? where name=?";

DBConnection db = new DBConnection();

try {

PreparedStatement preStmt = (PreparedStatement) db.conn.prepareStatement(sql);

// preStmt.setString(1, uemail);

// preStmt.setString(2, upwd);

// preStmt.setString(3, uname);

preStmt.executeUpdate();

preStmt.close();

db.close();//关闭连接

i = 1;

} catch (SQLException e) {

e.printStackTrace();

}

return i;//返回影响的行数,1为执行成功

}

//删除操作

public static int del(String sql) {

int i=0;

// String sql="delete from employee where name=?";

DBConnection db = new DBConnection();

try {

PreparedStatement preStmt = (PreparedStatement) db.conn.prepareStatement(sql);

preStmt.executeUpdate();

preStmt.close();

db.close();//关闭连接

i = 1;

} catch (SQLException e){

e.printStackTrace();

}

return i;//返回影响的行数,1为执行成功

}

public static List query(Class> obj, String sql) throws SQLException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{

Statement st=null;

List list=new ArrayList<>();

DBConnection db = new DBConnection();

Statement stmt = (Statement) db.conn.createStatement();

ResultSet rs=st.executeQuery(sql);

//获取传入类中的体例

Method[] methods=obj.getMethods();

//设置一个体例的list集合,下面将体例放入其中,以便挪用

List list_m= new ArrayList<>();

//类中有许多体例,过滤一些体例,获取自己想要的体例

for(int i=0;i

//判断体例名字中是否有set这个提取

if (methods.getName().contains("set")) {

//将体例添加到list中

list_m.add(methods);

}

}

//建立字符串string集合,获取下面的字段名存入

List fieldname=new ArrayList<>();

//获取类中的属性,其属性对应数据库中的字段

Field[] f=obj.getDeclaredFields();

//循环将字段中的名字首个变大写

for (int i = 0; i < f.length; i++) {

//获取名字

String field=f.getName();

//变巨细写,存入fieldname集合

fieldname.add(upperCase(field));

}

//获取获得结果集(rs)的结构,好比字段数、字段名等。

ResultSetMetaData rsmd= rs.getMetaData();

//循环读取结果集中的数据添加到list集合中

while (rs.next()) {

//建立一个传入类对象user

Object user=obj.newInstance();

//遍历体例的集合

for (Method m : list_m) {

//遍历字段的集合

for (int i = 0; i < f.length; i++) {

//体例和字段作比较,查看体例名中是否含有这个字段名,两者匹配

if (m.getName().contains("set"+fieldname.get(i))) {

//匹配成功 ,则去获得rsmd去获取数据库中的字段名,rs.getObject,再根据获取的这个字段名去获得这个字段值

Object value=rs.getObject(rsmd.getColumnName(i+1));

//获取这个字段的类型,以便去贮存这个值的类型

Class> type=f.getType();

//是int类型的转化

if (type==int.class) {

value=new Integer(value.toString());

}

//string类型的转化

if (type==String.class) {

value=value.toString();

}

//m是user对象中的体例,设置其值

m.invoke(user, value);

}

}

}

//将的到的user对象实例添加到list集合中

list.add(user);

}

return list;

}

public static String upperCase(String str) {

//先将字符串转换为字符数组

char[] ch = str.toCharArray();

//将数组的第一个元素 即字符串首字母,进行ASCII 码前移,ASCII 中大写字母从65开始,小写字母从97开始,所以这里减去32。

if (ch[0] >= 'a' && ch[0] <= 'z') {

ch[0] = (char) (ch[0] - 32);

}

return new String(ch);

}

}

java实现mysql数据库增删改查-1.jpg (91.77 KB, 下载次数: 0)

2018-11-2 06:49 上传

更多内容回复查看:

游客,如果您要查看本帖隐藏内容请回复

mfc连接mysql增删改查_java实现mysql数据库增删改查相关推荐

  1. java连接mysql实现增删改查_java连接数据库,实现增删改查操作

    一.前言 写这个文章的原因是为了巩固自己连接数据库步骤 希望对初次学习数据库的朋友有所帮助 二.MySQL数据库连接 数据库连接步骤加载驱动程序,获取数据库连接对象 2.1驱动jar包 2.2代码 p ...

  2. java mysql 有什么用_java web mysql 入门知识讲解

     MySQL学习笔记总结 一.SQL概述: SQL:Structured Query Language的缩写(结构化查询语言) SQL工业标准:由ANSI(ISO核心成员) 按照工业标准编写的SQ ...

  3. java mysql插入数据乱码_java向mysql数据库插入数据显示乱码的问题

    在做一个java web工程时,有时会碰到在向数据库添加数据库时,结果出现乱码"???"的问题.针对该问题的主要解决办法就是: 一.确保是否添加了字符集过滤器: 在java web ...

  4. java mysql 源码分析_JAVA JDBC(MySQL)驱动源码分析

    JAVA连接数据库是其众多功能中的一部分,主要有两种方式连接DataBase: 一种是采用JDBC-ODBC桥,另一种则是称之为纯驱动连接DataBase,第一种方式在大型项目中基本上不再使用,本系列 ...

  5. 向mysql中插入时间_Java向mysql中插入时间的方法

    ava向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源 java向MySQL插入当前时间的四种方式 第一种:将java.util.Date类型的时 ...

  6. java对mysql进行查找替换_java对mysql的增删改查

    -----连接数据库 package connectdb; import java.sql.*; class Dbcon { // 此处连接数据库,独立开一个类,以后操作数据库的每次连接就不用写这么多 ...

  7. java单链表 提供增删改查_java实现单链表增删改查的实例代码详解

    package 数据结构算法.链表; /* *定义节点 * 链表由节点构成 */ public class node { private e e; //数据data private node next ...

  8. java简单增删改查_JAVA JDBC 简单的增删改查

    packagejdbc_util;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;imp ...

  9. python对sqlite增删改查_Python操作sqlite3数据库 增删改查

    SQLite,是一款轻型的数据库,占用资源非常的低.这里记录下对sqlite3的增删改查相关操作,顺便复习一下SQL语句- -. 一.创建数据库 连接到一个现有的数据库.如果数据库不存在,那么它就会被 ...

最新文章

  1. 阿里二面:redis分布式锁过期了但业务还没有执行完,怎么办
  2. 目前的Android恶意软件分类
  3. thinkphp整合极验滑动验证码源码演示下载
  4. background-position 使用方法具体介绍
  5. 使用Varnish加速Web
  6. 内存映射(mmap系统调用)
  7. Xilinx PLL IP核功能仿真
  8. 工人退休工资偏低,为什么?
  9. autocad ios 虚线_autocad中画箭头、虚线绘制方法介绍
  10. 如何设计一个简单的网站首页
  11. 千兆级LTE奏响序曲 5G可款款来矣
  12. Ironic 裸金属管理服务
  13. 中国电信5G技术缩略语
  14. java excel 列_java 如何操作excel 插入一列
  15. 求通俗解释下bandit老虎机是个什么东西?
  16. python调用ADB接口实现自动打电话(夺命连环call)
  17. Token一般存放在哪里
  18. 基于JAVA学生信息管理和新生报到系统(Springboot框架) 开题报告
  19. python 获取本机wifi IP地址
  20. 将迅雷集成进XP安装光盘(上)(转)

热门文章

  1. 求解下列递推关系式_装错信封问题及九连环问题的递推关系式以及通项公式的推导(尤其是高中生一定要读)...
  2. 在js中访问html页面,javascript – 在IE9的html页面中访问js里面的全局函数
  3. PHP数组之间的比较,PHP 数组之间的比较方法:
  4. linux系统硬盘数量,Linux ext4文件系统划分磁盘inode数量
  5. Adobe Acrobat Pro DC二次激活失败的解决方案
  6. Java虚拟机(四)——运行时数据区
  7. Python机器学习:梯度下降法006随机梯度下降法
  8. android 获取手机a标签页,Android关于对Jsoup抓取a标签和br标签之间的解决办法...
  9. php升级语言,PHP是最好的语言,PHP 8.0带来了重大更新
  10. 天猫HTML练手项目,GitHub - txz1220/tianmao: 一个模仿天猫网页的项目