本文目录一览:
- 1、MYSQL在JAVA中的使用问题
- 2、如何在Java程序中访问mysql数据库中的数据并进行简单的操作
- 3、通过java操作执行mysql的问题
- 4、Java中对数据库操作实例
- 5、如何用java连接mysql数据库
MYSQL在JAVA中的使用问题
while (result.next())
改成 hashnext();
ArrayList list = dao.select(sql);
Iterator iterator = list.iterator();
while(iterator.hasNext()){
oram.FlowEvent t =(oram.FlowEvent)iterator.next();
out.println(t.getEventId()+" "+t.getByname()
类似这样 就不会溢出了
如何在Java程序中访问mysql数据库中的数据并进行简单的操作
必须用JDBC技术。Mysql中实现了JDBC中的方法。具体的实现代码如下:
package com.itheima.jdbc;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
/**
* 创建数据库连接
*
* @author 长孙建坤 18092853734
* @version 2017-04-26 20:41:35
*/
public class JDBCTest02 {
public void demo(){
System.out.println("ddd");
}
public static void main(String[] args) {
InputStream config = JDBCTest02.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties pro = new Properties();
try {
pro.load(config);
String driver = pro.getProperty("driver");
Class.forName(driver);
String username = pro.getProperty("user");
String password = pro.getProperty("password");
String url = pro.getProperty("url");
Connection con = DriverManager.getConnection(url, username, password);
String sql = "select * from perinfo";
PreparedStatement pst = con.prepareStatement(sql);
ResultSet set = pst.executeQuery();
while(set.next()){
System.out.println(set.getString(2));
}
String del = "DELETE FROM perinfo WHERE pid = ?";
pst.setObject(1, 5);
int update = pst.executeUpdate(del);
System.out.println(update);
} catch (IOException e) {
new RuntimeException(e + "配置文件读取失败!");
} catch (SQLException e) {
new RuntimeException(e + "连接获取失败!");
} catch (ClassNotFoundException e) {
new RuntimeException(e + "类文件加载失败!");
}
}
}
通过java操作执行mysql的问题
首先正确安装好MySQL,建立好数据库studentinfo
mysqlcreate database studentinfo;
然后编写java代码,ConnectToMySQL.java
import java.sql.*;
public class ConnectToMySQL {
public static Connection getConnection() throws SQLException ,
java.lang.ClassNotFoundException{
String url = "jdbc:mysql://localhost:3306/studentinfo";
Class.forName("com.mysql.jdbc.Driver");
String userName = "root";
String password = "";
Connection con = DriverManager.getConnection(url,userName,password);
return con;
}
public static void main(String[] args) {
try{
Connection con = getConnection();
Statement sql = con.createStatement();
sql.execute("drop table if exists student");
sql.execute("create table student(id int not null auto_increment,name varchar(20) not null default 'name',math int not null default 60,primary key(id));");
sql.execute("insert student values(1,'AAA','99')");
sql.execute("insert student values(2,'BBB','77')");
sql.execute("insert student values(3,'CCC','65')");
String query = "select * from student";
ResultSet result = sql.executeQuery(query);
System.out.println("Student表数据如下:");
System.out.println("---------------------------------");
System.out.println("学号"+" "+"姓名"+" "+"数学成绩");
System.out.println("---------------------------------");
int number;
String name;
String math;
while(result.next()){
number = result.getInt("id");
name = result.getString("name");
math = result.getString("math");
System.out.println(number + " " + name + " " + math);
}
sql.close();
con.close();
}catch(java.lang.ClassNotFoundException e){
System.err.println("ClassNotFoundException:" + e.getMessage());
}catch(SQLException ex){
System.err.println("SQLException:" + ex.getMessage());
}
}
}
很详细了。
Java中对数据库操作实例
可以以普通的jdbc连接的使用习惯来使用连接池。 数据库连接池在编写应用服务是经常需要用到的模块,太过频繁的连接数据库对服务性能来讲是一个瓶颈,使用缓冲池技术可以来消除这个瓶颈。我们可以在互联网上找到很多关于数据库连接池的源程序,但是都发现这样一个共同的问题:这些连接池的实现方法都不同程度地增加了与使用者之间的耦合度。很多的连接池都要求用户通过其规定的方法获取数据库的连接,这一点我们可以理解,毕竟目前所有的应用服务器取数据库连接的方式都是这种方式实现的。但是另外一个共同的问题是,它们同时不允许使用者显式的调用Connection.close()方法,而需要用其规定的一个方法来关闭连接。这种做法有两个缺点:第一:改变了用户使用习惯,增加了用户的使用难度。首先我们来看看一个正常的数据库操作过程:int executeSQL(String sql) throws SQLExceptionfinallycatch(Exception e)catch(Exception e)return res;}使用者在用完数据库连接后通常是直接调用连接的方法close来释放数据库资源,如果用我们前面提到的连接池的实现方法,那语句conn.close()将被某些特定的语句所替代。第二:使连接池无法对之中的所有连接进行独占控制。由于连接池不允许用户直接调用连接的close方法,一旦使用者在使用的过程中由于习惯问题直接关闭了数据库连接,那么连接池将无法正常维护所有连接的状态,考虑连接池和应用由不同开发人员实现时这种问题更容易出现。综合上面提到的两个问题,我们来讨论一下如何解决这两个要命的问题。首先我们先设身处地的考虑一下用户是想怎么样来使用这个数据库连接池的。用户可以通过特定的方法来获取数据库的连接,同时这个连接的类型应该是标准的java.sql.Connection。用户在获取到这个数据库连接后可以对这个连接进行任意的操作,包括关闭连接等。通过对用户使用的描述,怎样可以接管Connection.close方法就成了我们这篇文章的主题。为了接管数据库连接的close方法,我们应该有一种类似于钩子的机制。例如在Windows编程中我们可以利用Hook API来实现对某个Windows API的接管。在JAVA中同样也有这样一个机制。JAVA提供了一个Proxy类和一个InvocationHandler,这两个类都在java.lang.reflect包中。我们先来看看SUN公司提供的文档是怎么描述这两个类的。public interface InvocationHandlerInvocationHandler is the interface implemented by the invocation handler of a proxy instance. Each proxy instance has an associated invocation handler. When a method is invoked on a proxy instance, the method invocation is encoded and dispatched to the invoke method of its invocation handler.SUN的API文档中关于Proxy的描述很多,这里就不罗列出来。通过文档对接口InvocationHandler的描述我们可以看到当调用一个Proxy实例的方法时会触发Invocationhanlder的invoke方法。从JAVA的文档中我们也同时了解到这种动态代理机制只能接管接口的方法,而对一般的类无效,考虑到java.sql.Connection本身也是一个接口由此就找到了解决如何接管close方法的出路。首先,我们先定义一个数据库连接池参数的类,定义了数据库的JDBC驱动程序类名,连接的URL以及用户名口令等等一些信息,该类是用于初始化连接池的参数,具体定义如下:public class ConnectionParam implements Serializable /** * 从连接池工厂中获取指定名称对应的连接池
如何用java连接mysql数据库
Java要连接数据库,那么首先你必须安装mysql数据库。
安装好mysql之后,安装JDK了。
安装好JDK之后,就是安装Eclipse了,要支持JDK版本,Eclipse安装的时候会自动去找JDK安装位置的,解压版的Eclipse,就要配置eclipse.ini文件了,将对应的JDK配置好,这些已经准备就绪的时候,就到mysql中创建数据库和表。
先创建数据库:
CREATE DATABASE SCUTCS;
接着,创建表:
CREATE TABLE STUDENT
(
SNO CHAR(7) NOT NULL,
SNAME VARCHAR(8) NOT NULL,
SEX CHAR(2) NOT NULL,
BDATE DATE NOT NULL,
HEIGHT DEC(5,2) DEFAULT 000.00,
PRIMARY KEY(SNO)
);
然后插入数据,可以用SQL语句insert into 表名 values (value1, value2, ...);
编写.java文件来演示一下如何访问MySQL数据库。
import java.sql.*;
public class JDBCTest {
public static void main(String[] args){
// 驱动程序名 String driver = "com.mysql.jdbc.Driver";
// URL指向要访问的数据库名scutcs String url = "jdbc:mysql://127.0.0.1:3306/scutcs";
// MySQL配置时的用户名 String user = "root"; // MySQL配置时的密码 String password = "root";
try { // 加载驱动程序 Class.forName(driver);
// 连续数据库 Connection conn = DriverManager.getConnection(url, user, password);
if(!conn.isClosed()) System.out.println("Succeeded connecting to the Database!");
// statement用来执行SQL语句 Statement statement = conn.createStatement();
// 要执行的SQL语句 String sql = "select * from student";
// 结果集 ResultSet rs = statement.executeQuery(sql);
while(rs.next()) // 选择sname这列数据 name = rs.getString("sname
// 输出结果 System.out.println(rs.getString("sno") + "\t" + name); }
rs.close(); conn.close();
} catch(ClassNotFoundException e) {
System.out.println("Sorry,can`t find the Driver!"); e.printStackTrace();
} catch(SQLException e) {
e.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
} } }