mysql创造 存储过程 并通过java程序调用该存储过程
mysql创建 存储过程 并通过java程序调用该存储过程 create table users_ning(id primary key auto_increment,pwd int); insert into users_ning values(id,1234); insert into users_ning values(id,12345); insert into users_ning values(id,12); insert in
mysql创建 存储过程 并通过java程序调用该存储过程create table users_ning(id primary key auto_increment,pwd int); insert into users_ning values(id,1234); insert into users_ning values(id,12345); insert into users_ning values(id,12); insert into users_ning values(id,123); CREATE PROCEDURE login_ning(IN p_id int,IN p_pwd int,OUT flag int) BEGIN DECLARE v_pwd int; select pwd INTO v_pwd from users_ning where id = p_id; if v_pwd = p_pwd then set flag:=1; else select v_pwd; set flag := 0; end if; END package demo20130528; import java.sql.*; import demo20130526.DBUtils; /** * 测试JDBC API调用过程 * @author tarena * */ public class ProcedureDemo2 { /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { System.out.println(login(123, 1234)); } /** * 调用过程,实现登录功能 * @param id 考生id * @param pwd 考试密码 * @return if成功:1; if密码错:0; if没有用户:-1 * @throws Exception */ public static int login(int id, int pwd) throws Exception{ int flag = -1; String sql = "{call login_ning(?,?,?)}";//***** Connection conn = DBUtils.getConnMySQL(); CallableStatement stmt = null; try{ stmt = conn.prepareCall(sql); //传递输入参数 stmt.setInt(1, id); stmt.setInt(2, pwd); //注册输出参数,第三个占位符的数据类型是整型 stmt.registerOutParameter(3, Types.INTEGER);//***** //执行过程 stmt.execute(); //获得过程执行后的输出参数 flag = stmt.getInt(3);//***** }catch(Exception e){ e.printStackTrace(); }finally{ stmt.close(); DBUtils.dbClose(); } return flag; } }
package demo20130526; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.sql.Connection; import java.sql.DatabaseMetaData; 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.Properties; public class DBUtils { <span style="white-space:pre"> </span>static Connection conn = null; <span style="white-space:pre"> </span>static PreparedStatement stmt = null; <span style="white-space:pre"> </span>static ResultSet rs = null; <span style="white-space:pre"> </span>static Statement st = null; <span style="white-space:pre"> </span>static String username = null; <span style="white-space:pre"> </span>static String password = null; <span style="white-space:pre"> </span>static String url = null; <span style="white-space:pre"> </span>static String driverName = null; <span style="white-space:pre"> </span>public static Connection getConnMySQL() throws Exception {// 连接mysql 返回conn <span style="white-space:pre"> </span>getUrlUserNamePassWordClassNameMySQL(); <span style="white-space:pre"> </span>conn = DriverManager.getConnection(url, username, password); <span style="white-space:pre"> </span>// conn.setAutoCommit(false);设置自动提交为false <span style="white-space:pre"> </span>return conn; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static Connection getConnORCALE() throws Exception {// 连接orcale <span style="white-space:pre"> </span>// 返回conn <span style="white-space:pre"> </span>getUrlUserNamePassWordClassNameORCALE(); <span style="white-space:pre"> </span>conn = DriverManager.getConnection(url, username, password); <span style="white-space:pre"> </span>// conn.setAutoCommit(false); <span style="white-space:pre"> </span>return conn; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>private static void getUrlUserNamePassWordClassNameORCALE() <span style="white-space:pre"> </span>throws Exception { <span style="white-space:pre"> </span>// 从资源文件 获取 orcale的username password url等信息 <span style="white-space:pre"> </span>Properties pro = new Properties(); <span style="white-space:pre"> </span>File path = new File("src/all.properties"); <span style="white-space:pre"> </span>pro.load(new FileInputStream(path)); <span style="white-space:pre"> </span>String paths = pro.getProperty("filepath"); <span style="white-space:pre"> </span>File file = new File(paths + "orcale.properties"); <span style="white-space:pre"> </span>getFromProperties(file); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static void getUrlUserNamePassWordClassNameMySQL() throws Exception { <span style="white-space:pre"> </span>// 从资源文件 获取mysql的username password url等信息 <span style="white-space:pre"> </span>Properties pro = new Properties(); <span style="white-space:pre"> </span>File path = new File("src/all.properties"); <span style="white-space:pre"> </span>pro.load(new FileInputStream(path)); <span style="white-space:pre"> </span>String paths = pro.getProperty("filepath"); <span style="white-space:pre"> </span>File file = new File(paths + "mysql.properties"); <span style="white-space:pre"> </span>getFromProperties(file); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static void getFromProperties(File file) throws IOException, <span style="white-space:pre"> </span>FileNotFoundException, ClassNotFoundException {// 读资源文件的内容 <span style="white-space:pre"> </span>Properties pro = new Properties(); <span style="white-space:pre"> </span>pro.load(new FileInputStream(file)); <span style="white-space:pre"> </span>username = pro.getProperty("username"); <span style="white-space:pre"> </span>password = pro.getProperty("password"); <span style="white-space:pre"> </span>url = pro.getProperty("url"); <span style="white-space:pre"> </span>driverName = pro.getProperty("driverName"); <span style="white-space:pre"> </span>Class.forName(driverName); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static void dbClose() throws Exception {// 关闭所有 <span style="white-space:pre"> </span>if (rs != null) <span style="white-space:pre"> </span>rs.close(); <span style="white-space:pre"> </span>if (st != null) <span style="white-space:pre"> </span>st.close(); <span style="white-space:pre"> </span>if (stmt != null) <span style="white-space:pre"> </span>stmt.close(); <span style="white-space:pre"> </span>if (conn != null) <span style="white-space:pre"> </span>conn.close(); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static ResultSet getById(String tableName, int id) throws Exception {// 用id来查询结果 <span style="white-space:pre"> </span>st = conn.createStatement(); <span style="white-space:pre"> </span>rs = st.executeQuery("select * from " + tableName + " where id=" + id <span style="white-space:pre"> </span>+ " "); <span style="white-space:pre"> </span>return rs; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static ResultSet getByAll(String sql, Object... obj) <span style="white-space:pre"> </span>throws Exception {// 用关键字 实现查询 关键字额可以任意 <span style="white-space:pre"> </span>sql = sql.replaceAll(";", ""); <span style="white-space:pre"> </span>sql = sql.trim(); <span style="white-space:pre"> </span>stmt = conn.prepareStatement(sql); <span style="white-space:pre"> </span>String[] strs = sql.split("\\?");// 将sql 以? 非开 <span style="white-space:pre"> </span>int num = strs.length;// 得到?的个数 <span style="white-space:pre"> </span>int size = obj.length; <span style="white-space:pre"> </span>for (int i = 1; i stmt.setObject(i, obj[i - 1]);// 数组下标从0开始 <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>if (size for (int k = size + 1; k stmt.setObject(k, null);// 数组下标从0开始 <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>rs = stmt.executeQuery(); <span style="white-space:pre"> </span>return rs; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static void doInsert(String sql) throws SQLException {// 传入 sql 语句 <span style="white-space:pre"> </span>// 实现插入操作 <span style="white-space:pre"> </span>st = conn.createStatement(); <span style="white-space:pre"> </span>st.execute(sql); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static void doInsert(String sql, Object... args) throws Exception {// 传入参数 <span style="white-space:pre"> </span>// 利用 <span style="white-space:pre"> </span>// PreparedStatement <span style="white-space:pre"> </span>// 实现插入 <span style="white-space:pre"> </span>// 传入的参数是任意多个 因为有Object 。。。args <span style="white-space:pre"> </span>int size = args.length;// 获得 Object ...obj 传过来的参数的个数 <span style="white-space:pre"> </span>stmt = conn.prepareStatement(sql); <span style="white-space:pre"> </span>for (int i = 1; i stmt.setObject(i, args[i - 1]);// 数组下标从0开始 <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>stmt.execute(); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static int doUpdate(String sql) throws Exception {// 传入 sql 实现更新操作 <span style="white-space:pre"> </span>st = conn.createStatement(); <span style="white-space:pre"> </span>int num = st.executeUpdate(sql); <span style="white-space:pre"> </span>return num; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static void doUpdate(String sql, Object... obj) throws Exception { <span style="white-space:pre"> </span>// 传入参数 利用 PreparedStatement实现更新 <span style="white-space:pre"> </span>// 传入的参数是任意多个 因为有Object 。。。args <span style="white-space:pre"> </span>int size = obj.length;// 获得 Object ...obj 传过来的参数的个数 <span style="white-space:pre"> </span>stmt = conn.prepareStatement(sql); <span style="white-space:pre"> </span>for (int i = 1; i stmt.setObject(i, obj[i - 1]);// 数组下标从0开始 <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>stmt.executeUpdate(sql); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static boolean doDeleteById(String tableName, int id) <span style="white-space:pre"> </span>throws SQLException {// 删除记录 by id <span style="white-space:pre"> </span>st = conn.createStatement(); <span style="white-space:pre"> </span>boolean b = st.execute("delete from " + tableName + " where id=" + id <span style="white-space:pre"> </span>+ ""); <span style="white-space:pre"> </span>return b; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static boolean doDeleteByAll(String sql, Object... args) <span style="white-space:pre"> </span>throws SQLException {// 删除记录 可以按任何关键字 <span style="white-space:pre"> </span>sql = sql.replaceAll(";", ""); <span style="white-space:pre"> </span>sql = sql.trim(); <span style="white-space:pre"> </span>stmt = conn.prepareStatement(sql); <span style="white-space:pre"> </span>String[] strs = sql.split("\\?");// 将sql 以? 非开 <span style="white-space:pre"> </span>int num = strs.length;// 得到?的个数 <span style="white-space:pre"> </span>int size = args.length; <span style="white-space:pre"> </span>for (int i = 1; i stmt.setObject(i, args[i - 1]);// 数组下标从0开始 <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>if (size for (int k = size + 1; k stmt.setObject(k, null);// 数组下标从0开始 <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>boolean b = stmt.execute(); <span style="white-space:pre"> </span>return b; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static void getMetaDate() throws Exception {// 获取数据库元素数据 <span style="white-space:pre"> </span>conn = DBUtils.getConnORCALE(); <span style="white-space:pre"> </span>DatabaseMetaData dmd = conn.getMetaData(); <span style="white-space:pre"> </span>System.out.println(dmd.getDatabaseMajorVersion()); <span style="white-space:pre"> </span>System.out.println(dmd.getDatabaseProductName()); <span style="white-space:pre"> </span>System.out.println(dmd.getDatabaseProductVersion()); <span style="white-space:pre"> </span>System.out.println(dmd.getDatabaseMinorVersion()); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static String[] getColumnNamesFromMySQL(String sql) throws Exception { <span style="white-space:pre"> </span>conn = DBUtils.getConnMySQL(); <span style="white-space:pre"> </span>return getColumnName(sql); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static String[] getColumnNamesFromOrcale(String sql) <span style="white-space:pre"> </span>throws Exception { <span style="white-space:pre"> </span>conn = DBUtils.getConnORCALE(); <span style="white-space:pre"> </span>return getColumnName(sql); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>private static String[] getColumnName(String sql) throws Exception {// 返回表中所有的列名 <span style="white-space:pre"> </span>conn = DBUtils.getConnORCALE(); <span style="white-space:pre"> </span>st = conn.createStatement(); <span style="white-space:pre"> </span>rs = st.executeQuery(sql); <span style="white-space:pre"> </span>ResultSetMetaData rsmd = rs.getMetaData(); <span style="white-space:pre"> </span>int num = rsmd.getColumnCount(); <span style="white-space:pre"> </span>System.out.println("ColumnCount=" + num); <span style="white-space:pre"> </span>String[] strs = new String[num]; <span style="white-space:pre"> </span>// 显示列名 <span style="white-space:pre"> </span>for (int i = 1; i String str = rsmd.getColumnName(i); <span style="white-space:pre"> </span>strs[i - 1] = str; <span style="white-space:pre"> </span>System.out.print(str + "\t"); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>return strs; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static void getColumnDataFromMySQL(String sql) throws Exception {// 输出表中的数据 <span style="white-space:pre"> </span>conn = DBUtils.getConnMySQL(); <span style="white-space:pre"> </span>getColumnData(sql); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static void getColumnDataFromORCALEL(String sql) throws Exception {// 输出表中的数据 <span style="white-space:pre"> </span>conn = DBUtils.getConnORCALE(); <span style="white-space:pre"> </span>getColumnData(sql); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static void getColumnData(String sql) throws Exception {// 输出表中的数据 <span style="white-space:pre"> </span>st = conn.createStatement(); <span style="white-space:pre"> </span>rs = st.executeQuery(sql); <span style="white-space:pre"> </span>ResultSetMetaData rsmd = rs.getMetaData(); <span style="white-space:pre"> </span>System.out <span style="white-space:pre"> </span>.println("\n------------------------------------------------------------------------------------------------------------------------"); <span style="white-space:pre"> </span>while (rs.next()) { <span style="white-space:pre"> </span>for (int i = 1; i System.out.print(rs.getString(i) + "\t"); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>System.out.println(); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>System.out <span style="white-space:pre"> </span>.println("------------------------------------------------------------------------------------------------------------------------"); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static void getTableDataFromOrcale(String sql) throws Exception {// 输出表的列名 <span style="white-space:pre"> </span>// 和表中的全部数据 <span style="white-space:pre"> </span>conn = DBUtils.getConnORCALE(); <span style="white-space:pre"> </span>getTableData(sql); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public static void getTableDataFromMysql(String sql) throws Exception {// 输出表的列名 <span style="white-space:pre"> </span>// 和表中的全部数据 <span style="white-space:pre"> </span>conn = DBUtils.getConnMySQL(); <span style="white-space:pre"> </span>getTableData(sql); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>private static void getTableData(String sql) throws SQLException { <span style="white-space:pre"> </span>// getTableDataFromMysql <span style="white-space:pre"> </span>// getTableDataFromOrcale <span style="white-space:pre"> </span>st = conn.createStatement(); <span style="white-space:pre"> </span>rs = st.executeQuery(sql); <span style="white-space:pre"> </span>ResultSetMetaData rsmd = rs.getMetaData(); <span style="white-space:pre"> </span>int num = rsmd.getColumnCount(); <span style="white-space:pre"> </span>System.out.println("ColumnCount=" + num); <span style="white-space:pre"> </span>String[] strs = new String[num]; <span style="white-space:pre"> </span>// 显示列名 <span style="white-space:pre"> </span>for (int i = 1; i String str = rsmd.getColumnName(i); <span style="white-space:pre"> </span>strs[i - 1] = str; <span style="white-space:pre"> </span>System.out.print(str + "\t"); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>System.out <span style="white-space:pre"> </span>.println("\n------------------------------------------------------------------------------------------------------------------------"); <span style="white-space:pre"> </span>while (rs.next()) { <span style="white-space:pre"> </span>for (int i = 1; i System.out.print(rs.getString(i) + "\t"); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>System.out.println(); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>System.out <span style="white-space:pre"> </span>.println("------------------------------------------------------------------------------------------------------------------------"); <span style="white-space:pre"> </span>} }

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

MySQL适合初学者使用,因为它安装简单、功能强大且易于管理数据。1.安装和配置简单,适用于多种操作系统。2.支持基本操作如创建数据库和表、插入、查询、更新和删除数据。3.提供高级功能如JOIN操作和子查询。4.可以通过索引、查询优化和分表分区来提升性能。5.支持备份、恢复和安全措施,确保数据的安全和一致性。

Navicat本身不存储数据库密码,只能找回加密后的密码。解决办法:1. 检查密码管理器;2. 检查Navicat的“记住密码”功能;3. 重置数据库密码;4. 联系数据库管理员。

使用 Navicat Premium 创建数据库:连接到数据库服务器并输入连接参数。右键单击服务器并选择“创建数据库”。输入新数据库的名称和指定字符集和排序规则。连接到新数据库并在“对象浏览器”中创建表。右键单击表并选择“插入数据”来插入数据。

Navicat for MariaDB 无法直接查看数据库密码,因为密码以加密形式存储。为确保数据库安全,有三个方法可重置密码:通过 Navicat 重置密码,设置复杂密码。查看配置文件(不推荐,风险高)。使用系统命令行工具(不推荐,需要对命令行工具精通)。

在 MySQL 中复制表需要创建新表、插入数据、设置外键、复制索引、触发器、存储过程和函数。具体步骤包括:创建具有相同结构的新表。将数据从原始表插入新表。设置相同的外键约束(如果原始表有)。创建相同索引。创建相同触发器(如果原始表有)。创建相同存储过程或函数(如果原始表使用了)。

Navicat 无法连接数据库的常见原因及其解决方法:1. 检查服务器运行状态;2. 核对连接信息;3. 调整防火墙设置;4. 配置远程访问;5. 排除网络问题;6. 检查权限;7. 保障版本兼容性;8. 排除其他可能性。

可在 Navicat 中通过以下步骤新建 MySQL 连接:打开应用程序并选择“新建连接”(Ctrl N)。选择“MySQL”作为连接类型。输入主机名/IP 地址、端口、用户名和密码。(可选)配置高级选项。保存连接并输入连接名称。

使用 Navicat 连接本地 MySQL 数据库的步骤:创建连接,并设置连接名称、主机、端口、用户名、密码。测试连接,确保参数正确。保存连接。从连接列表中选择新连接。双击要连接的数据库。
