mysql数据库的连接以及增删改查Java代码实现(PreparedStatement版)

数据库:

create table t1(id int primary key not null auto_increment,name varchar(32),password varchar(32));

insert into t1(name,password) values('admin','123');
insert into t1(name,password) values('zhangsan','123');
insert into t1(name,password) values('lisi','123');

Java代码:

mySqlConnection.java代码:

package com.dbdao.mysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.junit.Test;

public class mySqlConnection {

	//创建数据库驱动名称
	private static String Driver_class="com.mysql.jdbc.Driver";

	//数据库链接地址
	private String url="jdbc:mysql://localhost:3306/test";

	//数据库用户名
	private String user="root";

	//数据库密码
	private String password="11";

	//数据库链接
	private Connection con=null;

	//准备声明sql语句
	private PreparedStatement pstmt=null;

	//结果集
	private ResultSet rs=null;

	//影响行数
	private int i;

	/*
	 * 创建驱动
	 * */
	static{

		try {
			Class.forName(Driver_class);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	/*
	 * 加载驱动
	 * */
	@Test
	public void getConnect() {
		// TODO Auto-generated method stub
		try {
			con=DriverManager.getConnection(url, user, password);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		//判断数据库是否加载成功
		if(con!=null){

			System.out.println("数据库加载成功!");

		}else{

			System.out.println("数据库加载失败!");

		}

	}

	/*
	 * 执行sql语句
	 * */
	public void doSql(String sql,Object[] object) {
		// TODO Auto-generated method stub

		//判断sql语句是否存在
		if(sql!=null){

			//加载驱动
			getConnect();

			//判断object数组是否存在
			if(object==null){

				//如果不存在,创建一个,防止出现空指针异常
				object=new Object[0];

			}

			try {

				//声明一条准备的sql语句
				pstmt=con.prepareStatement(sql);

				//为Object对象一一赋值
				for(int i=0;i<object.length;i++){

					pstmt.setObject(i+1, object[i]);

				}

				//执行声明的sql语句
				pstmt.execute();

			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}else{

			System.out.println("sql语句并不存在!");

		}

	}

	/*
	 * 获取结果集
	 * */
	public ResultSet getRS(){

		try {

			//获取结果集方法
			rs=pstmt.getResultSet();

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		//返回结果集
		return rs;

	}

	/*
	 * 获取影响行数
	 * */
	public int getUpdateCount() {
		// TODO Auto-generated method stub

		try {

			//获取影响行数方法
			i=pstmt.getUpdateCount();

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		//返回影响行数
		return i;

	}

	/*
	 * 关闭方法
	 * */
	public void getClose() {
		// TODO Auto-generated method stub

		//关闭结果集
		try {

			//结果集关闭方法
			rs.close();

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{

			//关闭声明的sql语句
			try {

				//关闭声明的sql语句方法
				pstmt.close();

			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{

				//卸载驱动
				try {

					//驱动卸载方法
					con.close();

				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

			}
		}

	}

}

loginService.java代码:

package com.service;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.junit.Test;

import com.dbdao.mysql.mySqlConnection;

public class loginService {

	//导入mySqlConnection类
	mySqlConnection mysqlCon=new mySqlConnection();

	//准备sql语句
	private String sql;

	//影响行数(数据变更后,影响行数都是大于0,等于0时没变更,所以说如果变更失败,那么影响行数必定为负)
	private int i=-1;

	//结果集
	private ResultSet rs;

	/*
	 * 插入数据
	 * */
	@Test
	public void insert() {
		// TODO Auto-generated method stub

		//创建sql语句
		sql="insert into t1(name,password) values(?,?)";

		//创建object数组
		Object[] object=new Object[]{"admin","123456"};

		//执行sql语句
		mysqlCon.doSql(sql, object);

		//获取影响行数
		i=mysqlCon.getUpdateCount();

		//判断是否插入成功
		if(i!=-1){	

			System.out.println("数据插入成功!");

		}else{

			System.out.println("数据插入失败!");

		}

		//关闭链接
		mysqlCon.getClose();

	}

	/*
	 * 删除数据
	 * */
	@Test
	public void delete() {
		// TODO Auto-generated method stub

		//创建sql语句
		sql="delete from t1 where id=?";

		//创建object数组
		Object[] object=new Object[]{3};

		//执行sql语句
		mysqlCon.doSql(sql, object);

		//获取影响行数
		i=mysqlCon.getUpdateCount();

		//判断是否删除成功
		if(i!=-1){

			System.out.println("数据删除成功!");

		}else{

			System.out.println("数据删除失败!");

		}

		//关闭链接
		mysqlCon.getClose();

	}

	/*
	 * 更新数据
	 * */
	@Test
	public void update() {
		// TODO Auto-generated method stub

		//创建sql语句
		sql="update t1 set password=? where name=?";

		//创建Object数组
		Object[] object=new Object[]{"11","admin"};

		//执行sql语句
		mysqlCon.doSql(sql, object);

		//获取影响行数
		i=mysqlCon.getUpdateCount();

		//判断数据是否更新成功
		if(i!=-1){

			System.out.println("数据更新成功!");

		}else{

			System.out.println("数据更新失败!");

		}

		//关闭链接
		mysqlCon.getClose();

	}

	/*
	 * 遍历数据
	 * */
	@Test
	public void select() {
		// TODO Auto-generated method stub

		//创建sql语句
		sql="select * from t1";

		//执行sql语句
		mysqlCon.doSql(sql, null);

		//获取结果集
		rs=mysqlCon.getRS();

		//判断结果集是否为空
		if(rs!=null){

			try {

				//将光标移动到结果集末端,注意此处不能使用rs.afterLast();否则为空值。
				rs.last();

				//获取结果集行数
				i=rs.getRow();

				//判断结果集是否存在
				if(i>0){

					//将光标移动到结果集前端
					rs.beforeFirst();

					//循环遍历所有行数
					while(rs.next()){

						//遍历每行元素的内容
						String name=rs.getString("name");
						String password=rs.getString("password");

						//在控制台打印出结果
						System.out.println("name:"+name+"   password:"+password);

					}

				}else{

					System.out.println("结果集为空!");

				}

			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}else{

			System.out.println("结果集不存在!");

		}

		//关闭链接
		mysqlCon.getClose();

	}

}
时间: 2024-10-09 18:32:03

mysql数据库的连接以及增删改查Java代码实现(PreparedStatement版)的相关文章

mysql数据库的连接以及增删改查Java代码实现(Statement版)

数据库: create table t1(id int primary key not null auto_increment,name varchar(32),password varchar(32)); insert into t1(name,password) values('admin','123'); insert into t1(name,password) values('zhangsan','123'); insert into t1(name,password) values(

使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理

一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的MySQL Community Server 选择想要的版本进行下载 之后的步骤,因为本人已经安装过MySQL数据库,而卸载重装会比较麻烦,卸载不干净会导致新的装不上,所以可以参考下面的博客,因为官网的改动,前面的部分已经与该博客不符,按照本人在上面的介绍寻找即可 https://blog.csdn

【ASP】ASP对Access数据库的连接、增删改查及ASP的基本语法

本文讨论的是ASP,而不是Visual Studio写出来的.ASPX也就是ASP.NET. ASP不需要任何插件的支持,关键你是配置好WINDOWS的IIS服务器,把页面扔在上面执行就可以了. 不同WINDOWS系统的IIS服务器配置,除了某些被阉割的WINXP装机版系统之外,都支持IIS服务器配置,都在WINDOWS的组件中,不需要下载任何东西.如何配置IIS服务器不是本文讨论的重点. 一.基本目标 假设Access2007数据库database.mdb中存在表test如下: id为自增列,

MySQL数据库之表的增删改查

目录 MySQL数据库之表的增删改查 1 引言 2 创建表 3 删除表 4 修改表 5 查看表 6 复制表 MySQL数据库之表的增删改查 1 引言 1.MySQL数据库中,数据库database就是硬盘上的一个文件夹,表table就是文件夹里面的一个文件 2.表中的一条记录就相当于文件中的一行内容,与excel表类似,表table中有不同的标题,称之为字段 3.本节对表结构做增删改查,即创建表.删除表.修改表.查看表结构,至于表中数据的增删改查日后单独总结 2 创建表 1.创建一张表,需要建一

关于利用PHP访问MySql数据库的逻辑操作以及增删改查实例操作

PHP访问MySql数据库 <?php //造连接对象$db = new MySQLi("localhost","root","","0710_test"); //写SQL语句$sql = "select * from student";//检测连接数据库是否成功,失败返回"连接失败",并退出程序 if(mysqli_connect_error()){    die("连

JAVA 操作远程mysql数据库实现单表增删改查操作

package MysqlTest; import java.sql.DriverManager; import java.sql.ResultSet; import com.mysql.jdbc.Connection; import com.mysql.jdbc.PreparedStatement; import com.mysql.jdbc.Statement; public class MysqlTest02 { public static void main(String[] args)

Python访问MySQL数据库并实现其增删改查功能

概述: 对于访问数据库的操作,我想大家也都有一些了解.不过,因为最近在学习Python,以下就用Python来实现它.其中包括创建数据库和数据表.插入记录.删除记录.修改记录数据.查询数据.删除数据表.删除数据库.还有一点就是我们最好使用一个新定义的类来处理这件事.因为这会使在以后的使用过程中更加的方便(只需要导入即可,避免了重复制造轮子). 实现功能介绍: 1.封装一个DB类 2.数据库操作:创建数据库和数据表 3.数据库操作:插入记录 4.数据库操作:删除记录 5.数据库操作:修改记录数据

MySQL数据库2表的增删改查

[TOC] 一.数据表(文件): 1.1增 1.1.1列表的创建: create table 表名(字段名 列约束 [可选的参数] , ### 记住加逗号 字段名 列约束 [可选的参数] , ### 记住加逗号 字段名 列约束 [可选的参数] ### 最后一行不加逗号 )charset=utf-8; ### 后面加分号 例子: create table t1( id int, name char(5) )charset=utf-8; 1.1.2增加数据: insert into 表明 (列1,,

ORM操作mysql数据库多表的增删改查

多表增加 # 一对一 #查询要被关联的属相对象 au_obj = models.AuthorDetail.objects.get(id=4) models.Author.objects.create( name='海狗', age=59, #方式一:直接通过数据库的字段名au_id增加,一对一时,数据必须是没有关联过的,否则会报错 au_id=4, #方式二:通过属性models类的属性添加,首先要查出要关联的对象,然后通过属性关联,一对一数据必须未关联 au=au_obj,) #一对多 pub