MySql 数据库用java程序创建表以及存储过程
Java连接MySql数据库,并且实现插入、删除、更新、选择操作

天之火–Qutr的专栏君子终日乾乾,夕惕若,厉,无咎。
HomeJava连接MySql数据库,并且实现插入、删除、更新、选择操作!这是我最近写的一个连接MySql数据库的一个例子,主要实现了插入,删除,更新,选择操作,用的环境是j2sdk1.4.2_08,Eclipse3.1。
以前我的同事用Python 写了同样的类,非常的好用,支持了我们公司的大部分业务,现在我们慢慢改用Java了,所以我用Java重写了一遍。
一方面在今后的业务中能够用到,另一方面熟悉一下Java。
下面我把在Eclipse3.1下怎样配置数据库连接信息简单说一下。
1.启动Eclipse3.1。
2.建立一个Java project就叫DbConnect 吧,再在该Project下建立一个新类也叫DbConnect 吧。
3.右击DbConnect.java文件点import,选择Archive file然后选择你的mysql-connector-java-3.1.8-bin.jar文件,点Finish。
你会看到有好些文件被加载进来,OK这就是连接MySql所需的驱动信息。
如果到了这里你都成功的话那么恭喜你,你已经成功一半了!:)4.接下来把我下面的代码copy到你的Java文件中,修改相关的数据库连接信息运行一下。
OK?我说一下那个mysql-connector-java-3.1.8-bin.jar文件,其实这就是一个MySql的驱动,各数据库厂商提供了不同的适用于JDBC的驱动使得在Java中连接数据库非常简单。
这里我就不多说了,以后我会写篇专门介绍数据库驱动的文章。
关于MySql的驱动还有更新版本的,你需要到MySql的网站上去下载,这个网上到处都是,我就不多说了。
下面看程序,有些地方我写了详细的注释应该能看懂。
这个类是非常有特色的,在每个方法的传人参数和返回值不变的情况下,希望高手能提出改进意见。
多指教,谢谢!/*** 数据库连接、选择、更新、删除演示*///import java.sql.*;import java.sql.Connection;import java.sql.Statement;import java.sql.ResultSet;import java.sql.DriverManager;import java.util.*;public class DbConnect{/////////////////////////////////////////———–>>>数据成员and 构造函数private Connection dbconn;private Statement dbstate;private ResultSet dbresult;DbConnect(){dbconn = null;dbstate = null;dbresult = null;}/////////////////////////////////////////———–>>>类方法public void print(String str)//简化输出{System.out.println(str);}//end print(…)/*** 连接MySql数据库* @param host* @param port* @param dbaName* @param usName* @param psw* @return bool值,连接成功返回真,失败返回假*/public boolean dbConnection(String host, String port, String dbaName, String usName, String psw){String driverName = "com.mysql.jdbc.Driver";//"org.gjt.mm.mysql.Driver"两个驱动都可以用String dbHost = host;//数据库的一些信息String dbPort = port;String dbName = dbaName;String enCoding = "?useUnicode=true&characterEncoding=gb2312"; //解决MySql中文问题,要连续写不能空格String userName = usName;String Psw = psw;String url = "jdbc:mysql://" + dbHost + ":" + dbPort + "/" + dbName + enCoding;try{Class.forName(driverName).newInstance();dbconn = DriverManager.getConnection(url, userName, Psw);//getConnection(url, userName, Psw)从给的driver中选择合适的去连接数据库//return a connection to the URL}catch(Exception e){print("url = " + url); //发生错误时,将连接数据库信息打印出来print("userName = " + userName);print("Psw" + Psw);print("Exception: " + e.getMessage());//得到出错信息}if (dbconn != null)//dbconn != null 表示连接数据库成功,由异常保证!?return true;elsereturn false;}// end boolean dbConnection(…)/*** 对数据库表进行选择操作!* @param tableName 数据库表名* @param fieles 字段名* @param selCondition 选择条件* @return 一个含有map的List(列表)*/public ArrayList dbSelect(String tableName, ArrayList fields, String selCondition){ArrayList mapInList = new ArrayList();String selFields = "";for (int i = 0; i<fields.size(); ++i)selFields += fields.get(i) + ", ";String selFieldsTem = selFields.substring(0, selFields.length() – 2);//根据String的索引提取子串try{dbstate = dbconn.createStatement();String sql = "select " + selFieldsTem + " from " + tableName + selCondition;print("sql = " + sql);try{dbresult = dbstate.executeQuery(sql);}catch(Exception err){print("Sql = " + sql);print("Exception: " + err.getMessage());}while(dbresult.next()){Map selResult = new HashMap();selResult.put("message_type", dbresult.getString("message_type"));selResult.put("message_content",dbresult.getString("message_content"));mapInList.add(selResult);}}catch(Exception e){print("Exception: " + e.getMessage());}return mapInList;}//end String dbSelect(…)/*** 对数据库表中的记录进行删除操作* @param tableName* @param condition* @return bool值,表示删除成功或者失败。
mysql数据库建表代码

mysql数据库建表代码MySQL是一种开源的关系型数据库管理系统,它是最流行的数据库之一。
在MySQL中,建表是非常重要的一步,因为它决定了数据的存储方式和结构。
在本文中,我们将介绍如何使用MySQL建表。
我们需要创建一个数据库。
在MySQL中,可以使用以下命令创建一个名为“mydatabase”的数据库:CREATE DATABASE mydatabase;接下来,我们需要在该数据库中创建一个表。
表是由列和行组成的,每个列都有一个数据类型和一个名称。
在MySQL中,可以使用以下命令创建一个名为“mytable”的表:CREATE TABLE mytable (id INT NOT NULL AUTO_INCREMENT,name VARCHAR(50) NOT NULL,age INT NOT NULL,PRIMARY KEY (id));在上面的代码中,我们创建了一个包含三个列的表。
第一列是“id”,它是一个自增的整数,不允许为空。
第二列是“name”,它是一个最大长度为50的字符串,不允许为空。
第三列是“age”,它是一个整数,不允许为空。
最后,我们将“id”列设置为主键。
除了上面的基本数据类型外,MySQL还支持其他数据类型,如日期、时间、布尔值等。
在创建表时,可以根据需要选择适当的数据类型。
在创建表后,我们可以使用INSERT语句向表中添加数据。
例如,以下代码将向“mytable”表中添加一条记录:INSERT INTO mytable (name, age) VALUES ('John', 25);在上面的代码中,我们向“mytable”表中添加了一个名为“John”的人,他的年龄为25岁。
由于“id”列是自增的,因此不需要在INSERT语句中指定它的值。
我们可以使用SELECT语句从表中检索数据。
例如,以下代码将检索“mytable”表中所有人的姓名和年龄:SELECT name, age FROM mytable;在上面的代码中,我们使用SELECT语句选择了“name”和“age”列,并从“mytable”表中检索了所有记录。
Java中使用MyBatis Plus连接和操作MySQL数据库

Java中使用MyBatis Plus连接和操作MySQL数据库1. 简介近年来,Java语言以其跨平台特性和广泛的应用领域成为了全球最受欢迎的编程语言之一。
而MySQL作为一种强大的开源关系型数据库,也是Java开发者首选的数据库之一。
在Java中,我们可以使用MyBatis Plus来连接和操作MySQL数据库,提升开发效率和简化数据库操作。
2. MyBatis Plus简介MyBatis Plus是基于MyBatis的一款增强工具,旨在简化和提升MyBatis的使用体验。
它提供了一系列强大的功能,如代码生成器、分页插件、性能分析插件等,使得开发者能够更加便捷地开发和维护数据库相关的应用程序。
3. 连接MySQL数据库在使用MyBatis Plus连接MySQL数据库之前,我们需要先在项目中引入相关的依赖。
可以通过Maven或Gradle等构建工具来管理项目的依赖。
在pom.xml或build.gradle文件中添加相应的依赖项,然后进行构建操作。
在Java代码中,我们需要创建一个数据源并配置相关的数据库连接信息。
可以使用MySQL提供的JDBC驱动程序来管理数据库连接。
在MyBatis Plus中,我们可以使用com.mysql.cj.jdbc.Driver作为驱动类,指定数据库的URL、用户名和密码来建立连接。
4. 创建实体类在进行数据库操作之前,我们需要定义与数据库表对应的实体类。
在Java中,我们可以使用POJO(Plain Old Java Object)来表示实体类。
POJO是一种普通的Java对象,不继承任何特定的父类或实现任何特定的接口。
在MyBatis Plus中,实体类需要使用@Table注解来指定对应的数据库表名,使用@Column注解来指定字段名,以及指定主键等属性。
通过在实体类中定义与表对应的字段和属性,我们可以通过MyBatis Plus来进行数据库的增删改查操作。
preparedstatement创建表

preparedstatement创建表技术篇在Java语言中操作数据库是常见的需求,而建表是操作数据库最基本的步骤之一。
Java中,通过PreparedStatement可以很方便地创建、添加、更新表的结构。
下面我们详细介绍一下如何使用PreparedStatement 创建表。
第一步:连接数据库首先,我们需要连接到我们要创建表的数据库。
这一步可以通过JDBC API完成,例如:```java// 定义数据库连接信息String url = "jdbc:mysql://localhost:3306/test";String username = "root";String password = "123456";// 加载数据库驱动Class.forName("com.mysql.jdbc.Driver");// 建立数据库连接Connection connection = DriverManager.getConnection(url, username, password);```第二步:创建PreparedStatement对象将SQL语句传递给PreparedStatement对象,它会预解析SQL语句并缓存它,然后就可以调用PreparedStatement对象的方法来完成表的创建。
```java// SQL语句String sql = "CREATE TABLE IF NOT EXISTS user ("+ "id INT PRIMARY KEY AUTO_INCREMENT,"+ "username VARCHAR(50),"+ "password VARCHAR(50))";// 创建PreparedStatement对象PreparedStatement preparedStatement = connection.prepareStatement(sql);```第三步:执行SQL语句调用PreparedStatement对象的execute方法即可执行SQL语句:```javapreparedStatement.execute();```PreparedStatement还提供了executeQuery()和executeUpdate()方法,可以用来执行查询和更新操作。
java连接Mysql方法和示例

非本人资料,资料来自:/cxwen78/article/details/6863696这网址很多好的资料。
JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术。
一、JDBC基础知识JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API 编写数据库应用程序,并且可跨平台运行,并且不受数据库供应商的限制。
1、跨平台运行:这是继承了Java语言的“一次编译,到处运行”的特点;2、不受数据库供应商的限制:巧妙在于JDBC设有两种接口,一个是面向应用程序层,其作用是使得开发人员通过SQL调用数据库和处理结果,而不需要考虑数据库的提供商;另一个是驱动程序层,处理与具体驱动程序的交互,JDBC驱动程序可以利用JDBC API创建Java程序和数据源之间的桥梁。
应用程序只需要编写一次,便可以移到各种驱动程序上运行。
Sun提供了一个驱动管理器,数据库供应商——如MySQL、Oracle,提供的驱动程序满足驱动管理器的要求就可以被识别,就可以正常工作。
所以JDBC不受数据库供应商的限制。
JDBC API可以作为连接Java应用程序与各种关系数据库的纽带,在带来方便的同时也有负面影响,以下是JDBC的优、缺点。
优点如下:∙操作便捷:JDBC使得开发人员不需要再使用复杂的驱动器调用命令和函数;∙可移植性强:JDBC支持不同的关系数据库,所以可以使同一个应用程序支持多个数据库的访问,只要加载相应的驱动程序即可;∙通用性好:JDBC-ODBC桥接驱动器将JDBC函数换成ODBC;∙面向对象:可以将常用的JDBC数据库连接封装成一个类,在使用的时候直接调用即可。
mysql用来创建数据库对象的命令

MySQL是一种常用的关系型数据库管理系统,它提供了丰富的命令来创建数据库对象,包括数据库、表、视图、索引、存储过程等。
本文将详细介绍MySQL中用于创建数据库对象的命令,并通过事实举例进行说明。
一、创建数据库创建数据库是在MySQL中创建对象的第一步。
可以使用CREATE DATABASE命令来创建数据库,语法如下:CREATE DATABASE database_name;例如,我们要创建一个名为"mydb"的数据库,可以使用以下命令:CREATE DATABASE mydb;二、创建表在数据库中,表是用于存储数据的主要对象。
可以使用CREATE TABLE命令来创建表,语法如下:CREATE TABLE table_name (column1 datatype constraint,column2 datatype constraint,...);例如,我们要创建一个名为"customers"的表,其中包含id、name 和email三个字段,可以使用以下命令:CREATE TABLE customers (id INT PRIMARY KEY,name VARCHAR(50),email VARCHAR(100));三、创建视图视图是基于一个或多个表的查询结果集,可以像表一样使用。
可以使用CREATE VIEW命令来创建视图,语法如下:CREATE VIEW view_name ASSELECT column1, column2, ...FROM table_nameWHERE condition;例如,我们要创建一个名为"customer_view"的视图,显示"customers"表中名字以"S"开头的客户信息,可以使用以下命令:CREATE VIEW customer_view ASSELECT id, name, emailFROM customersWHERE name LIKE 'S%';四、创建索引索引是用于加快数据库查询速度的对象。
java中mysql临时表的写法

java中mysql临时表的写法在Java 中使用MySQL 临时表,你可以通过JDBC(Java Database Connectivity)连接到MySQL 数据库,然后使用SQL 语句执行创建临时表的操作。
以下是一个简单的示例:```javaimport java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class CreateTemporaryTableExample {public static void main(String[] args) {// JDBC连接参数String url = "jdbc:mysql://localhost:3306/your_database";String user = "your_username";String password = "your_password";try (Connection connection = DriverManager.getConnection(url, user, password)) { // 创建Statement 对象Statement statement = connection.createStatement();// 创建临时表的SQL 语句String createTemporaryTableSQL = "CREATE TEMPORARY TABLE temp_table_name ("+ "id INT PRIMARY KEY,"+ "name VARCHAR(255)"+ ")";// 执行SQL 语句statement.executeUpdate(createTemporaryTableSQL);System.out.println("Temporary table created successfully!");} catch (SQLException e) {e.printStackTrace();}}}```请确保替换示例中的以下信息:-`jdbc:mysql://localhost:3306/your_database`:将`your_database` 替换为你的MySQL 数据库名称。
java mysql预处理语句

java mysql预处理语句Java与MySQL是常用的编程语言和数据库管理系统,它们的结合可以实现强大的数据处理和管理功能。
在Java中使用MySQL数据库时,可以使用预处理语句来执行SQL查询、插入、更新和删除操作。
预处理语句能够提高程序的执行效率和安全性,同时也使得代码更易于维护和调试。
下面将列举10个常用的Java MySQL预处理语句。
1. 查询操作:```javaString sql = "SELECT * FROM table_name WHERE column_name = ?";PreparedStatement stmt = conn.prepareStatement(sql);stmt.setString(1, value);ResultSet rs = stmt.executeQuery();```上述代码中,将查询语句中的条件值使用占位符"?"表示,然后通过`setString`方法设置占位符的具体值,最后使用`executeQuery`方法执行查询操作,返回查询结果集。
2. 插入操作:```javaString sql = "INSERT INTO table_name (column1, column2)VALUES (?, ?)";PreparedStatement stmt = conn.prepareStatement(sql);stmt.setString(1, value1);stmt.setString(2, value2);int rows = stmt.executeUpdate();```上述代码中,将插入语句中的列值使用占位符"?"表示,然后通过`setString`方法设置占位符的具体值,最后使用`executeUpdate`方法执行插入操作,并返回受影响的行数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MySql 数据库用java程序创建表以及存储过程
1.同一般的数据库操作基本一样。
2.Statement.executeUpdate(String sql); 这个方法可以用来执行DDL语句,以及执行更新操作。
3.需要注意 CallableStatement 接口的用法。
用于执行 SQL 存储过程的接口。
JDBC API 提供了一个存储过程 SQL 转义语法,该语法允许对所有 RDBMS 使用标准方式调用存储过程。
此转义语法有一个包含结果参数的形式和一个不包含结果参数的形式。
如果使用结果参数,则必须将其注册为 OUT 型参数。
其他参数可用于输入、输出或同时用于二者。
参数是根据编号按顺序引用的,第一个参数的编号是 1。
{?= call <procedure-name>[<arg1>,<arg2>, ...]}
{call <procedure-name>[<arg1>,<arg2>, ...]}
IN 参数值是使用从 PreparedStatement 中继承的 set 方法设置的。
在执行存储过程之前,必须注册所有 OUT 参数的类型;它们的值是在执行后通过此类提供的 get 方法检索的。
4.需要注意存储过程调用的方法。
5.registerOutParameter 的使用方法。
void registerOutParameter(int parameterIndex, int sqlType) throws SQLException
按顺序位置 parameterIndex 将 OUT 参数注册为 JDBC 类型 sqlType。
所有 OUT 参数都必须在执行存储过程前注册。
由 sqlType 指定的 OUT 参数的JDBC 类型确定必须用于 get 方法来读取该参数值的 Java 类型。
如果预期返回给此输出参数的 JDBC 类型是取决于此特定数据库的,则 sqlType 应该是java.sql.Types.OTHER。
方法 getObject(int) 检索该值。
参数:
parameterIndex - 第一个参数是 1,第二个参数是 2,依此类推。
sqlType - java.sql.Types 定义的 JDBC 类型代码。
如果参数是 JDBC 类型NUMERIC 或 DECIMAL,则应使用接受标度值的那种。
下面是一个具体的程序实例:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package gui.database;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author zhfdai
*/
public class DBManager {
public static void main(String[] args) {
final String DATABASE_NAME = "jdbc:mysql://localhost:3306/test"; final String USER_NAME = "root";
final String PASSWORD = "zhfdai";
Connection connection; //为数据库建立的连接
Statement statement; //将执行的SQL语句
CallableStatement callable; //将执行的SQL存储过程
try {
Class.forName("org.gjt.mm.mysql.Driver");
connection = DriverManager.getConnection(DATABASE_NAME, USER_NAME, PASSWORD);
statement = connection.createStatement();
/*
创建时,先检查该数据库中该项是否已经存在。
若存在,就删除。
*/
String checkTable = "DROP TABLE IF EXISTS test.teacher;"; statement.executeUpdate(checkTable);
String createTable = "Create table test.teacher(name varchar(20) not null primary key ,age int not null);";
statement.executeUpdate(createTable);
String checkProcedure1 = "DROP PROCEDURE IF EXISTS
test.queryall";
statement.executeUpdate(checkProcedure1);
String createProcedure1 = "CREATE PROCEDURE test.queryall() BEGIN SELECT * FROM test.teacher; END";
statement.executeUpdate(createProcedure1);
String checkProcedure2 = "DROP PROCEDURE IF EXISTS
test.queryCount";
statement.executeUpdate(checkProcedure2);
String createProcedure2 = "CREATE PROCEDURE
test.queryCount(OUT param INT) BEGIN SELECT COUNT(*) INTO param FROM test.teacher; END";
statement.executeUpdate(createProcedure2);
String query = "queryall";
callable = connection.prepareCall("{call " + query + "}"); ResultSet rs = callable.executeQuery();
System.out.println("Column :" +
rs.getMetaData().getColumnCount());
System.out.println("Table:" +
rs.getMetaData().getTableName(1));
String queryCount = "queryCount(?)";
callable = connection.prepareCall("{ call " + queryCount + " }");
callable.registerOutParameter(1,
Types.INTEGER); //设定参数的数据类型。
callable.executeQuery(); //获取参数所得值。
int rowCount = callable.getInt(1);
System.out.println("The number of rows is " + rowCount);
} catch (SQLException ex) {
Logger.getLogger(DBManager.class.getName()).log(Level.SEV ERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(DBManager.class.getName()).log(Level.SEV ERE, null, ex);
}
}
}。