首先在控制台設置好SQL Server的ODBC,我的ODBC為MyDatabase.
import java.sql.*;public class CreateTableApp {
public static void main(String[] args) {
CreateTableApp table = new CreateTableApp();
table.createTables();
}
public void createTables() {
Connection con = null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:MyDatabase","Itvs_user","tradelink123");
Statement stmt = con.createStatement();
// String update = "create table CC(UDR varchar(12), Decldt Datetime)";
ResultSet rs = stmt.executeQuery("select Name from Company");
while(rs.next()) {
String s = rs.getString("Name");
System.out.println(s);
}
}catch(ClassNotFoundException cnfe){
System.err.println(cnfe);
}catch(SQLException sqle){
System.err.println(sqle);
}catch(Exception e){
System.err.println(e);
}
finally{
try{
if(con!=null){
con.close();
}
}catch(SQLException sqle){
System.err.println(sqle);
}
}
}
}
import java.sql.*;public class CreateTableApp {
public static void main(String[] args) {
CreateTableApp table = new CreateTableApp();
table.createTables();
}
public void createTables() {
Connection con = null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:MyDatabase","Itvs_user","tradelink123");
Statement stmt = con.createStatement();
// String update = "create table CC(UDR varchar(12), Decldt Datetime)";
ResultSet rs = stmt.executeQuery("select Name from Company");
while(rs.next()) {
String s = rs.getString("Name");
System.out.println(s);
}
}catch(ClassNotFoundException cnfe){
System.err.println(cnfe);
}catch(SQLException sqle){
System.err.println(sqle);
}catch(Exception e){
System.err.println(e);
}
finally{
try{
if(con!=null){
con.close();
}
}catch(SQLException sqle){
System.err.println(sqle);
}
}
}
}
解决方案 »
- swing请教
- java问题
- 关于jsp中部署class文件
- 用xml文件记录log4j生成的日志信息
- Java HelloWorld.java是编译吗?不过通不过?
- 将类firstClass声明在另一个类Test内部声明,编绎时报错:non-static variable this cannot be referenced from a static contex
- 一个新手对Java机制的困惑!
- 谁有IO方面的书??
- 如何将有规律的字符串转化为数组形式???
- <***--有办法对HTML<table>标签描述的表格中的单元格定位吗?--***>
- 查jdk文档帮助时(关于Class GregorianCalendar类结构)有些迷惑的地方,希望高手指点啊
- jdk中能编译的文件,为什么在jbuilder中就不能编译了呢?谢谢给位高手!
jdbc驱动设置(非jbuilder的运行环境下,比如cmd环境):
下载一个驱动,安装后将驱动文件(比如sqlserver是3个.jar文件)的绝对路径放入classpath环境变量里面去,最好将驱动就安装到jdk的lib目录里面算了。
可运行代码实例:
import java.sql.*;
public class Test {
public static void main(String[] args) {
try {
String address = "jdbc:microsoft:sqlserver://192.168.0.24:1433";
//驱动类型+目标数据库ip+数据库端口
String user="sa";//数据库用户密码
String passwd="";//口令
String database = "TESTDB";//目标数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//驱动申明
Connection con = DriverManager.getConnection(address,user,passwd);//建立链接
con.setCatalog(database);//确定目标数据库
Statement smt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
//设定结果集支持滚动光标且敏感,不可编辑
String selCode = "SELECT userId,userName FROM UserTable";//查询语句
ResultSet rs = smt.executeQuery(selCode);//结果集
if(rs.last()) {//从第一条往后依次取结果集中的记录
String userId = rs.getString(1);//等同rs.getString("userId"),即第一个字段数据
String userName = rs.getString(2);//同上,第二个字段,全部取其为String类型
//若是中文字段,一般需要转码
//userName = new String(userName.getBytes("ISO-8859-1"),"gb2312");
System.out.println(userId+":"+userName);//输出此条记录的查询结果
}
rs.close();//释放资源
smt.close();
con.close();
}
catch(Exception e) {
System.out.println(e);//捕捉异常
}
}
}
方式2:使用jdbc-odbc数据源方式链接数据库
String dbUrl = "jdbc:odbc:Test";
//在控制面版-管理工具-数据源-系统dsn里面添加数据源名Test,选定对应sqlserver数据库
String user = "sa";
String password = "";
// 登陆数据库OMT,使用jdbc-odbc
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(dbUrl, user, password);
Statement stmt = con.createStatement();
//注意,通过此种方式得到的结果集不支持滚动光标和不可更改
ResultSet rs = stmt.executeQuery(sqlCode);
……
其它同上
然后;
import java.io.*;
import java.sql.*;
class BookQuery
{
public static void main(String args[])
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ce)
{
System.out.println("SQLException: "+ce.getMessage());
}
try
{
Connection con=DriverManager.getConnection("jdbc:odbc:bookbase");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from bookTab");
while(rs.next())
{
System.out.println(
"书号: "+rs.getInt(1)+"\t"+
"书名: "+rs.getString(2)+"\t"+
"作者: "+rs.getString(3)+"\t"+
"单价: "+rs.getFloat(4));
}
stmt.close();
con.close();
}
catch(SQLException e)
{
System.out.println("SQLException: "+e.getMessage());
}
}
}