首先要有一个可以连接的数据库,其次使用下面这个文件(流行的三种数据库连接);另外的Main函数和类自己写吧.sqlStr用恰当的SQL语句代替.
package db;
import java.sql.*;
//import com.mysql.jdbc.Driver;//导入MYSQL数据库驱动
//import oracle.jdbc.driver.OracleDriver;//ORACLE的
//MSSQL的其实不用import进来也行的.但是在编译时,必须要把这些"必需的库"加进来.
/*下面是MYSQL的连接设置*/
/**driver name would be loaded {@link #getConnection()}*/
private final String driverName = "com.mysql.jdbc.Driver"; //要加载的驱动名称
/**url to connect {@link #driverName}*/
private String url = "jdbc:mysql://localhost:3306/dabaseName";//连接的URL
private String user = "root";//数据库用户名
private String password = "123456";//数据库登陆密码
/*下面是ORACLE thin连接设置*/
private String driverName = "oracle.jdbc.driver.OracleDriver"; //driver name
private String url = "jdbc:oracle:thin:@//192.168.18.16:1521/databaseName";
/*对于Oracle 推荐这样写:jdbc:oracle:thin://192.168.18.16:1521:databaseName
private String user = "username";
private String password = "userpassword";
/*下面是SQLserver连接设置*/
private String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
private String url = "jdbc:microsoft:sqlserver://localhost:1433;databaseName=test";
private String user = "aaa";
private String password = "123";
/*下面是通用的*/
private Connection conn = null;//
private Statement stmt = null;//
private PreparedStatement pst = null;//
private ResultSet rs = null;//
/*加载驱动*/
try{
Class.forName(driverName);//.newInstance();
com = DriverManager.getConnection(url,user,password);//获取连接;
stmt = conn.createStatement();//
rs = stmt.executeQuery(sqlStr);//执行一次查询sqlStr = "select * from tablename";
stmt.executeUpdate(sqlStr);//添加,删除,修改sqlStr = "delete from table ";
stmt.close();
conn.close();
}
catch (Exception e){
e.printStackTrace();//打印异常到后台
}
/*****以下是一个完全的实例********************/
/**
*@(#) DbManager.java 1.00 2007/07/26
*
*Copyright (c) 2007
*
*this class is.....
*/
package query;
import java.sql.*;
//import oracle.jdbc.driver.OracleDriver;
/**
* DB Manager for Oracle
*
*@author lijm
*@version $id:2007
*@bug bug description
*@concurrency concurrency des
*@copyright 2007 des
*@example des
*/
public class DbManager
{
/**driver name would be loaded {@link #getConnection()}*/
private final String driverName = "com.mysql.jdbc.Driver"; //driver name
/**url to connect {@link #driverName}*/
private String url = "jdbc:mysql://localhost:3306/ljm2";
private String user = "root";//"together";
private String password = "123456";//"wowinmylife2005";
private Connection conn = null;
private Statement stmt = null;
private PreparedStatement pst = null;
private ResultSet rs = null;
/*************************************
**构造函数,创建连接和语句
*@see #getConnection()
*@throws Exception if getConnection failed
*******************************/
public DbManager() throws SQLException
{
try {
conn = getConnection();
}
catch (SQLException e)
{
System.out.println("创建数据库连接失败!");
throw e;
}
try {
stmt = conn.createStatement();
}
catch (SQLException e){
System.out.println("创建语句失败");
throw e;
}
}
/****************************
**连接数据库.
*<p> detail remark 1{@link #DbManager()}</p>
*<p> detail remark 2</p>
*****************************/
public Connection getConnection()
throws SQLException/*,ClassNotFoundException,java.lang.InstantiationException,java.lang.IllegalAccessException*/
{
try
{
Class.forName(driverName);//.newInstance();
return DriverManager.getConnection(url,user,password);
}
catch (ClassNotFoundException e)
{
System.out.println("加载驱动类 : " +driverName+ " 失败!");
e.printStackTrace();
throw new SQLException("没有找到驱动类");
}
catch (SQLException e){
System.out.println("连接数据库失败");
e.printStackTrace();
throw e;
}/*
catch (java.lang.InstantiationException e){
System.out.println("实例化驱动程序失败");
throw new SQLException("实例化驱动程序失败");
}
catch (java.lang.IllegalAccessException e){
System.out.println("实例化驱动程序失败");
throw new SQLException("实例化驱动程序失败");
}*/
catch (Exception e){
throw new SQLException("其它异常");
}
//return conn;
}
/**********************************
**执行数据库查询
*@param sqlStr sql statement
*@return 查询结果集
*********************************/
public ResultSet execQuery(String sqlStr) throws SQLException
{
try
{
rs = stmt.executeQuery(sqlStr);
}
catch (SQLException e)
{
System.out.println("查询数据失败");
e.printStackTrace();
throw e;
}
return rs;
}
/*************************
**执行数据库更新(插入记录,更新记录,删除记录
*@param sqlStr
**********************************/
public void execUpdate(String sqlStr) throws SQLException
{ boolean update = true;
try
{
stmt.executeUpdate(sqlStr);
//return true;
}
catch (SQLException e)
{ System.out.println("更新失败");
e.printStackTrace();
update = false;
throw e;
}
}
/****************************
**关闭连接;释放资源(手动).
*在程序中要记得连接的关闭,不然的话会引起很多的SQL异常
***************/
public void close()
{
try {
if (stmt != null){
stmt.close();
stmt = null;
}
conn.close();
conn = null;
}
catch (SQLException e){
System.out.println("关闭数据库连接失败!");
e.printStackTrace();
}
}
/**********************
**测试本文件(DbManager.java)
***************/
public static void main(String [] args){
try{
DbManager dbm = new DbManager();
ResultSet rs = dbm.execQuery("select * from req_bill_operate_table where dt_operatetime like ''");
if(rs.next()){
System.out.println("rs in not null in main");
}
dbm.close();
System.out.println("ather main try");
}
catch (SQLException e){
System.out.println("e in main :" +e.getMessage()+ "\t cause:" +e.getCause());
//e.printStackTrace();
}
//dbm.execUpdate("create table ljmmm( id number)");
}
}
或者你也可以试试以下的程序
准备工作:
1、jar包放在C:\Program Files\Java\jdk1.5.0_09\jre\lib\ext中
2、在eclipse中:项目名-属性-java构建路径-添加外部jar包
/*
*本示例代码详细说明了如何在Java中利用JDBC直接连接到SQL Server 2000数据库,包括使用SQl 2000驱动(三个jar包),
*以及使用SQL 2005包(一个包)的两种情况
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.*;
public class DBManagerSQL {
ResultSet rs;
String strurl="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=testDB";//2、SQL 2000 三个包时
//String strurl="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=testDB";//1、驱动为SQL 2005时,sqljdbc.jar
public DBManagerSQL(){}
public ResultSet getResult(String sql)
{
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//2、SQL 2000三个包时
//Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //2、驱动为SQL 2005时,sqljdbc.jar
Connection con=DriverManager.getConnection(strurl,"sa","sa");
executeUpdate、execute
con.createStatement(int resultSetType,int resultSetConcurrency)
resultSetType定义结果集类型:TYPE_FORWARD_ONLY,结果集的游标只能向前移
TYPE_SCROLL_INSENSTIVE,结果集游标可以前后移动,结果集不反映表中数据变化
TYPE_SCROLL_SENSITIVE,结果集游标可以前后移动,结果集立即反映表中数据变化
resultSetConcurrency定义结果集的更新方式:
CONCUR_UPDATABLE,可以进行更新操作
CONCUR_READ_ONLY,不可以进行更新操作
示例:反向遍历数据表
st=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=st.executeQuery(sql);
rs.afterLast;//将游标指向结果集结束
while(rs.previous())
{
System.out.println(rs.getString(1));//此处为第一列!也可以使用列名
}
Statement stmt=con.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
//ResultSet包含符合SQL语句中条件的所有行,等价于一张表,其中有查询所返回的列标题及相应的值。通过get方法可以访问这些行中的数据
//ResultSet维持一个指向当前行的指针,最初指向第一行之前。通过ResultSet.next方法移动到下一行,返回值True/false
ResultSet rs=stmt.executeQuery(sql);
return rs;
}
catch(Exception e)
{
System.out.println("Exception:"+e.toString());
return null;
}
}
public boolean executeSql(String sql)
{
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn=DriverManager.getConnection(strurl,"sa","sa");
Statement stmt=conn.createStatement();
stmt.executeUpdate(sql);
conn.commit();
return true;
}
catch(Exception e)
{
System.out.println("Exception:"+e.toString());
return false;
}
}
public static void main(String args[])
{
DBManagerSQL db=new DBManagerSQL();
ResultSet rs1=null;
try{
rs1=db.getResult("select * from student");
System.out.println("****");
while(rs1.next())
{
System.out.println(rs1.getString(1));//此处为第一列!也可以使用列名getString("sno")
//getInt()可以将指定字段以Int类型返回,其他类推
}
}
catch(SQLException e)
{
System.out.println("========================>"+e.toString());
}
//***********************下为记录的插入,删除,更新操作****************************
String sqlstr="insert into student values('200501013','刘玲','女')"; //注意引号
// String sqlstr="delete from student where sname='刘玲'";
//String sqlstr="update student set sex='女'where sname='张三'";
db.executeSql(sqlstr);
//*********************断开连接**************************
// 一般顺序为ResultSet--Statement-- Connection
/*//示例
try{
if(rs!=null)
{rs.close();}
if(stmt!=null)
{stmt.close();}
if(conn!=null&&!conn.isclosed())
{conn.close();}
}
catch(SQLException e){
e.printStackTrace();
}
*/
try{
if (rs1!=null) rs1.close();
}
catch(SQLException e)
{
//System.out.println("========================>"+e.toString());
e.printStackTrace();
}
}
}
实在不行下面一种也行
import java.sql.*; //导入sql库
public class DBStu { //建一个类,类名为DBStu.
public boolean insert(String name,String sex,int num){//建一个公共的方法有boolean的返回值
Connection con = null; //初始化连接对象
PreparedStatement pstmt = null; //初始化执行语句对象
boolean list = false; //新建boolean变量为false;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载连接数据库存的驱动
} catch (ClassNotFoundException ex) { //捕获异常
}
try {
con = DriverManager.getConnection("jdbc:odbc:dbName"); //用ODBC方法连接数据源,数据源名为dbName.
String sql = "insert into student values(?,?,?)"; //创建sql语句,语句意思为插入数据.
pstmt = con.prepareStatement(sql); //执行该语句.
pstmt.setString(1,name); //在语句里添加值,里面的1对应的第一个问号,由name得到的值填入
pstmt.setString(2,sex); //与上同意
pstmt.setInt(3,num); //与上同意.
int count = pstmt.executeUpdate(); //用一个整型变量来接爱更新了几条语句.
list = (count>0)?true:false; //用三元运算符判断如果更新至少一条语句,list就为true.
} catch (SQLException ex1) { //捕获异常
list = false; //如果有异常则为假
}finally{
try {
pstmt.close(); //关闭执行语句
con.close(); //关闭连接语句
} catch (SQLException ex2) { //捕获异常
}
}
return list; //返回它的值,如果为真,则这个方法插入数据成功了.
}
}
下面是理论
..........完全是代码啊
第一步:在构造函数里面使用Class.forName加载驱动
第二步:在构造函数中使用DriverManager.getConnection(地址,用户,密码)得到链接。
第三步:得到预编译对象PreparedStatement ps = conn.createPreparedStatement ();
第四步:得到结果集ResuletSet rs = ps.executeQuely(SQL语句)
或者是添加,修改,删除 boolean b = ps.executeUpdata(SQL语句)
建议你开一下jdbc的书籍,你会明白为什么这么做的,理解了问题就简单了,好多的事情IDE可以做,知道原理就可以了
首先要知道JAVA里面3个操作数据库的接口
CONNECTION STATEMENT REAULTSET
然后用Class.forName加载驱动
用Drivermanager.getConnection();建立连接
然后用CONNECTION的对象 createStatement();
然后就可以用得到的Statement对象去执行SQL语句了
温馨提示:内容为网友见解,仅供参考
java问题,高分悬赏!!!
1、jar包放在C:\\Program Files\\Java\\jdk1.5.0_09\\jre\\lib\\ext中 2、在eclipse中:项目名-属性-java构建路径-添加外部jar包 \/* *本示例代码详细说明了如何在Java中利用JDBC直接连接到SQL Server 2000数据库,包括使用SQl 2000驱动(三个jar包), *以及使用SQL 2005包(一个包)的两种情况 *\/ import java.sql.C...
高分悬赏Java程序,急!!!
我的 高分悬赏Java程序,急!!!参考题目:1.做一个写字板,要求本软件用户必须注册方可运行(注册后下次启动无需在注册,第一次使用必须注册)。2.五子棋双人对弈程序。要求:•按开始按钮双方开始下棋,当在已... 参考题目:1.做一个写字板,要求本软件用户必须注册方可运行(注册后下次启动无需在注册,第一次使用必须...
求一个会做Java的人~高分悬赏!!
给你一些思路:添加音乐无非是在加分的同时放声音,在相应的事件处理的时候加山声音处理就好了,破记录对话框:记录最高成绩,同时记录玩家的本次成绩,每次结束游戏,都要把本次成绩和最高成绩比较,当玩家的本次成绩高于最高成绩,弹出对话款,说明破纪录 ...
java编程,高手请进,高分悬赏,答对追加200
以下是你需要的代码,共两个文件,1至5题为TestMain.java文件。第6题为TestInterface.java文件。如还有问题再找才子辉吧。--- class TestClass{ double[] d = {1.0, 2.0, 3.0};\/\/1.编写一个类TestClass,为TestClass添加一个double类型的数组,并给数组赋初值。public double dSum(){\/\/...
【高分悬赏】一道JAVA题,求解~~
public static void main(String[] args) { String[] 一组等长的英文单词 = "watch match noise risky stock".split(" "),数字字母的对应 = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};System.out.print("请输入一个数字:");String 输入 = new java.util....
高分悬赏java编程题
import java.net.Socket;import java.util.Date;public class TcpServer { public static void main(String[] args) throws Exception { ServerSocket ss=new ServerSocket(8888);Socket s=ss.accept();ObjectOutputStream oos=new ObjectOutputStream(s.getOutputStream());while(true){ Date date=...
高分悬赏这段java注释
public static void main(String args[]) \/\/ 主方法 { AB s=new AB("Hello!","I LOVE JAVA."); \/\/实例化类 AB 并将引用给 AB的对象s System.out.println(s.toString()); \/\/ 打印出s的toString方法返回的值 结果为: hello!I LOVE JAVA } } class AB \/\/ 类...
高分悬赏 四行代码的详细解释、备注 关于高德地图的图标显示
pic, java.util.List<PoiItem> items)根据给定的参数来构造一个PoiOverlay的新对象。通过此构造函数创建Poi图层。removeFromMap() 将PoiOverlay从地图中移除。去掉PoiOverlay上所有的Marker。addToMap(MapView mv) 将PoiOverlay加入到地图中。添加Marker到地图中。zoomToSpan()移动镜头到当前的视角。
联想i968JAVA的卸载问题?(高分悬赏)
java里的文件夹是空的,删除JAR以后还可以运行,因为你以前已经安装过了,删除自带程序需要和自带程序一样的JAVA文件(即JAR和JAD),安装上再删除就行了,希望能帮助你
Java中如何给JButton\/JLabel定位置?【高分悬赏】
setLocation public void setLocation(int x,int y)将组件移到新位置。通过此组件父级坐标空间中的 x 和 y 参数来指定新位置的左上角。参数:x - 父级坐标空间中新位置左上角的 x 坐标 y - 父级坐标空间中新位置左上角的 y 坐标 setLayout会覆盖setLocation行为,setLocation()不能保证跨平台...