java之操作mysql常用方法
一般引用mysql-connector-java这个包。
package DBManager; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashSet;
import java.util.Set; import MyClient.ArrivalCities;
import MyClient.LineInfos;
import MyClient.TrainLineInfo; public class DBHelper { private static final String DRIVER = "com.mysql.jdbc.Driver";
private static final String URL = "jdbc:mysql://localhost:3306/traininfo";
private static final String USERNAME = "root";
private static final String PASSWORD = "123abcd";
Connection conn = null;
ResultSet result = null;
PreparedStatement statement = null;
PreparedStatement stateInsert = null;
PreparedStatement stateUnlock = null; public Connection getConnection() {
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
} public ResultSet executeQuery(String sql) {
conn = this.getConnection();
try {
statement = conn.prepareStatement(sql);
result = statement.executeQuery();
return result;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("query data failed");
}
return null;
} public ResultSet findTrainLinesByDate(String start_city, String date) {
String dateStr = dateToString(date);
ResultSet result = this.executeQuery("select name,start_time from "
+ "line_" + dateStr + "_info " + "where start_city='"
+ start_city + "' and date='" + date + "'");
return result;
} public ResultSet findArrivalCities(String city, String line) {
ResultSet result = this
.executeQuery("select distinct arrival_city from " + city
+ "_city_info where line_num='" + line + "'");
return result;
} public ArrivalCities getAllArrivalCities(String startCity, String date) {
ArrivalCities cities = new ArrivalCities();
Set<String> list = new HashSet<String>();
ResultSet lines = this.findTrainLinesByDate(startCity, date);
try {
while (lines.next()) {
ResultSet arrivals = this.findArrivalCities(startCity,
lines.getString("name"));
while (arrivals.next()) {
list.add(arrivals.getString("arrival_city"));
}
}
if (list.size() > 0) {
cities.setCities(list);
return cities;
}
return null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
} public LineInfos getAllLineInfos(String startCity, String arrivalCity,
String date) {
LineInfos lineinfos = new LineInfos();
ResultSet lines = this.findTrainLinesByDate(startCity, date);
if (lines != null) {
try {
while (lines.next()) {
String name = lines.getString("name");
ResultSet result = this.executeQuery("select price from "
+ startCity + "_city_info where arrival_city="
+ '"' + arrivalCity + '"' + " and line_num=" + '"'
+ name + '"');
if (result.next()) {
TrainLineInfo train = new TrainLineInfo(name,
result.getInt("price"),
lines.getLong("start_time"));
lineinfos.getList().add(train);
}
}
return lineinfos;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
} public ResultSet findNumOfSellSeats(String date, String line) {
String dateStr = dateToString(date);
ResultSet result = this.executeQuery("SELECT count(id) as num from "
+ line + "_" + dateStr + "_info where is_out=1");
return result;
} public String dateToString(String date) {
String[] result = date.split("-");
StringBuilder sb = new StringBuilder();
for (String ss : result) {
sb.append(ss);
}
return sb.toString();
} //购票,更新数据库信息
public void getBuyTicket(String dep_city,String arr_city, String date, String line){
String seat = getProperSeat(dep_city, line, date);
String sql = "update "; } public boolean executeDelete(String sql) {
conn = this.getConnection();
try {
statement = conn.prepareStatement(sql);
if (statement.executeUpdate() > 0) {
return true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("delete data failed");
e.printStackTrace();
}
return false;
} public boolean executeUpdate(String sql) {
conn = this.getConnection();
try {
statement = conn.prepareStatement(sql);
if (statement.executeUpdate() > 0) {
return true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("update data failed");
e.printStackTrace();
}
return false;
} public boolean executeInsert(String sql, String date, String line) {
conn = this.getConnection();
String lockSql = "lock tables " + line + "_" + date + "_info write";
String unlockSql = "unlock tables";
try {
stateInsert = conn.prepareStatement(lockSql);
statement = conn.prepareStatement(sql);
stateUnlock = conn.prepareStatement(unlockSql);
stateInsert.executeQuery();
if (statement.executeUpdate() > 0) {
stateUnlock.executeQuery();
return true;
}
stateUnlock.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("insert data failed");
e.printStackTrace();
}
return false;
} }
java之操作mysql常用方法的更多相关文章
- java JDBC操作MySQL数据库
一,首先在MYSQL建立一个数据库,例如Geek99DB: create database Geek99DB; use Geek99DB; 然后建立一个表CustomerTab: create tab ...
- 在Myeclipse中用Java语言操作mysql数据库
package OperateMysql; import java.sql.*; public class MysqlTest { public static void main(String[] a ...
- 【Java】操作mysql数据库
package bd; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; im ...
- Java -- JDBC 操作mysql数据库
1. Demo1 导包时 不要导具体的mysql包, 为了兼容性,导JDBC 中 sql的包既可以了. public class Demo1 { /** * @param args * @throws ...
- Java 操作MySql数据库
Java 项目开发中数据库操作是很重要的一个方面,对于初学者来说,MySql是比较容易熟悉的一种常见数据库,这篇文章记录了如何用Java来操作MySql数据库. 第一章 JDBC的概念 JDBC(Ja ...
- java分享第十七天-03(封装操作mysql类)
JAVA操作mysql所需jar包:mysql-connector-java.jar代码: import java.sql.*; import java.util.ArrayList; import ...
- Java使用Jdbc操作MySql数据库(一)
这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...
- Java框架spring Boot学习笔记(五):Spring Boot操作MySQL数据库增、删、改、查
在pom.xml添加一下代码,添加操作MySQL的依赖jar包. <dependency> <groupId>org.springframework.boot</grou ...
- Java框架spring Boot学习笔记(四):Spring Boot操作MySQL数据库
在pom.xml添加一下代码,添加操作MySQL的依赖jar包. <dependency> <groupId>org.springframework.boot</grou ...
随机推荐
- excle导出使用poi
package com.ittax.core.util; import java.util.List; import javax.servlet.ServletOutputStream; import ...
- Bootstrap中的Glyphicon 字体图标
在Bootstrap框架中也为大家提供了近200个不同的icon图片,而这些图标都是使用CSS3的@font-face属性配合字体来实现的icon效果. 1 <!DOCTYPE html> ...
- window 系统 修改服务器远程登录端口
window 系统 [ 默认3389远程端口 ] 快捷键:Ctrl+R 然后输入“regedit”,打开注册表 或者 单击左下角[开始]——[运行],然后在输入框输入 regedit,点击确定,打开 ...
- C#校验手机端或客户端
以下代码用来检查,客户端是手机端还是PC端 string strUserAgent = Request.UserAgent.ToString().ToLower(); bool isMobile = ...
- Codeforces Round #482 (Div. 2) B、Treasure Hunt(模拟+贪心)979B
题目 大致题意 n表示要进行n次操作,接着给出三个字符串,表示三个人初始拥有的串.每次操作要替换字符串中的字母,询问最后在游戏中曾出现过的相同的子串谁最多. 思路 (1) 讨论最多的子串,肯定是全部 ...
- ZPL打印机命令解释
个人备忘: 1.装驱动,装驱动要装对应的ZPL或者EPL版本,目前发现GK888T无需选择,直接装GK888T即可,其他机型未知. 2.标签设计,文本部分用SimSun-ExtB字体,变量内容部分用Z ...
- Robot Framework常用库简介
标准库 Robot Framework可以直接导入使用的库,包括: • Builtin:包含经常需要的关键字.自动导入无需import,因此总是可用的 • Dialogs:提供了暂停测试执行和从用户的 ...
- Fiddler相关配置
1.General 2.HTTPS: 3.Connections 4.Gateway 5.appearance 6.Scripting url过滤: REGEX:\.(js|css|png|gif|h ...
- DOM, DOCUMENT, BOM, WINDOW 有什么区别?
DOM: DOM 全称是 Document Object Model,也就是文档对象模型. DOM 就是针对 HTML 和 XML 提供的一个API.什么意思?就是说为了能以编程的方法操作这个 HTM ...
- dict 增删改查
# dict # 数据类型划分: 可变数据类型,不可变数据类型 # 不可变数据类型: 元组 bool int str set (又被称为可哈希) # 可变数据类型: list dict (又被称为不可 ...