javadb数据库怎么导入sql文件

javadb数据库怎么导入sql文件,第1张

创建Java工程javaDB:

首先要把Derby驱动包加进来,该文件可以在C:\Program Files\Sun\JavaDB\lib找到,就是derby.jar

创建包com.test

在包下面创建JavaDBTes测试类,

并添加主函数

创建数据

第一步加载驱动:

Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance()

第二部设置账号密码:

Properties props = new Properties()props.put("user", "admin")props.put("password", "123")

第三部 连接创建数据库:

Connectionconn = DriverManager.getConnection("jdbc:derby:liucreate=true",props)

不提交事务

conn.setAutoCommit(false)

创建表:

Statement s = conn.createStatement()//获取实例 s.execute("create table user_info (user_id int,user_name varchar(50))")

conn.commit()//提交事务

往表添加数据:

Statement s = conn.createStatement()boolean mark = s.execute("insert into user_info values(1, '张三')")

conn.commit()

查询数据:

ResultSet rs = s.executeQuery("SELECT user_id,user_name FROM user_info")

//遍历结果集

while (rs.next()) {

System.out.println(rs.getInt(1))

System.out.println(rs.getString(2)) }

7

修改数据:

Statement s = conn.createStatement()boolean mark = s.execute("update user_info setuser_name= '张三' where user_id=1")

conn.commit()

8

删除数据:

Statement s = conn.createStatement()boolean mark = s.execute("delete from user_info where user_id=1")

conn.commit()

javaDB其实就是Derby,它并不是一个新的数据库产品,它是由IBM捐献给Apache的DB项目的一个纯Java数据库,JDK6.0里面带的这个Derby的版本是 10.2.1.7,支持存储过程和触发器有两种运行模式,一种是作为嵌入式数据库,另一种是作为网络数据库,前者的数据库服务器和客户端都在同一个 JVM里面运行,后者允许数据库服务器端和客户端不在同一个JVM里面,而且允许这两者在不同的物理机器上.值得注意的是JDK6里面的这个Derby支持JDK6的新特性JDBC 4.0规范(JSR 221),现在我们如果要练习JDBC的用法,没有必要单独装一个数据库产品了,直接用Derby就行.

1、本身没有 *** 作界面,可以用第三方工具来管理(也就是你说的 *** 作界面),Aqua Data Studio 具备管理功能的用于 Apache Derby 关系数据库的管理工具和数据库查询工具。直观管理功能让用户能够浏览和修改数据库结构,包括架构对象和数据库存储,以及维护数据库安全。集成查询工具让您能够迅速创建、编辑和执行 SQL 查询与脚本。Aqua Data Studio 进一步提供导入与导出工具,从而轻松地将数据移入和移出不同的数据格式及 Apache Derby 数据库。集成在这些工具内的是库浏览器 (Repository Browser),拥有 CVS 和 Subversion (SVN) 的完整来源控制客户端。

2、两者的区别,简单的说,就是javaDB是一个简化轻量级数据库,适合小型系统的小规模测试用,完全可以跑在内存里的数据库,它只有3M大小,而MySQL则是可以应用部署大型系统的数据库,功能更多更全,也更稳定,是用范围更广。

3、下面是个使用derby的简单例子:

首先导入JAR包:derby.jar,如果你装的是JDK6,在C:\Program Files\Sun\JavaDB\lib目录下就可以找到.

然后就要创建数据库了:

代码

private Connection getConnection() throws SQLException {

Connection connection = DriverManager

.getConnection("jdbc:derby:userDBcreate=trueuser=testpassword=test")

connection.setAutoCommit(false)

return connection

}

其中userDB是要连接数据库的名字,create=true表示如果该数据库不存在,则创建该数据库,如果数据库存在,则用用户user=test密码password=test连接数据库.

有了数据库,接下来该建表了:

代码

private void createTable(Connection connection) throws SQLException {

Statement statement = connection.createStatement()

String sql = "create table USERS("

+ " ID BIGINT not null generated by default as identity,"

+ " USER_NAME VARCHAR(20) not null,"

+ " PASSWORD VARCHAR(20),"

+ " constraint P_KEY_1 primary key (ID))"

statement.execute(sql)

sql = "create unique index USER_NAME_INDEX on USERS ("

+ " USER_NAME ASC)"

statement.execute(sql)

statement.close()

}

创建了 USERS表,包括ID,USER_NAME,PASSWORD三个列,其中ID是主键,其中generated by default as identity 的作用类似sequence,identity是定义自动加一的列,

GENERATED BY ALWAYS AS IDENTITY

GENERATED BY DEFAULT AS IDENTITY

By always和by default是说明生成这个IDENTITY的方式。

By always是完全由系统自动生成。

by default是可以由用户来指定一个值。

编写与USERS表对应的javabean(这个就不多说了),:

代码

public class User implements Serializable {

/**

*

*/

private static final long serialVersionUID = 1L

private Long id

private String userName

private String password

public Long getId() {

return id

}

public void setId(Long id) {

this.id = id

}

public String getUserName() {

return userName

}

public void setUserName(String userName) {

this.userName = userName

}

public String getPassword() {

return password

}

public void setPassword(String password) {

this.password = password

}

}

接下来就可以就数据库进行增删改查的 *** 作了:

插入数据:

代码

private void create(User user) {

Connection connection = null

try {

connection = this.getConnection()

PreparedStatement statement = connection

.prepareStatement("insert into users (user_name,password) values(?,?)")

int index = 1

statement.setString(index++, user.getUserName())

statement.setString(index++, user.getPassword())

statement.execute()

user.setId(this.getId(connection))

connection.commit()

} catch (SQLException e) {

rollback(connection)

throw new RuntimeException(e)

} finally {

if (connection != null) {

close(connection)

}

}

}

代码

private Long getId(Connection connection) throws SQLException {

CallableStatement callableStatement = connection

.prepareCall("values identity_val_local()")

ResultSet resultSet = callableStatement.executeQuery()

resultSet.next()

Long id = resultSet.getLong(1)

resultSet.close()

callableStatement.close()

return id

}

getId方法是获得系统默认的id值,是通过 identity_val_local()获得的,而函数IDENTITY_VAL_LOCAL()则可以在INSERT语句执行之后,为我们返回刚才系统为id所产生的值.感觉还是有点想sequence的curr_val.

修改数据:

代码

private void update(User user) {

Connection connection = null

try {

connection = this.getConnection()

PreparedStatement statement = connection

.prepareStatement("update users set user_name=?,password=? where id=?")

int index = 1

statement.setString(index++, user.getUserName())

statement.setString(index++, user.getPassword())

statement.setLong(index++, user.getId())

statement.execute()

connection.commit()

} catch (SQLException e) {

rollback(connection)

throw new RuntimeException(e)

} finally {

if (connection != null) {

close(connection)

}

}

}

删除数据:

代码

public void delete(Long id) {

Connection connection = null

try {

connection = this.getConnection()

PreparedStatement statement = connection

.prepareStatement("delete from users where id=?")

statement.setLong(1, id)

statement.execute()

connection.commit()

} catch (SQLException e) {

rollback(connection)

throw new RuntimeException(e)

} finally {

if (connection != null) {

close(connection)

}

}

}

查询数据:

代码

public User findById(Long id) {

Connection connection = null

try {

connection = this.getConnection()

PreparedStatement statement = connection

.prepareStatement("select user_name,password from users where id=?")

statement.setLong(1, id)

ResultSet resultSet = statement.executeQuery()

User user = null

if (resultSet.next()) {

user = new User()

user.setId(id)

user.setUserName(resultSet.getString("user_name"))

user.setPassword(resultSet.getString("password"))

}

resultSet.close()

statement.close()

connection.commit()

return user

} catch (SQLException e) {

throw new RuntimeException(e)

} finally {

if (connection != null) {

close(connection)

}

}

}

你要连接什么数据库,如果是连接SQL server2000,你试试这样做:下载msbase.jar、mssqlserver.jar、msutil.jar这三个库文件,微软官网上好像有,选择“服务”窗口——》在“驱动程序”上右击,“新建驱动程序”——》“添加”这三个文件——》确定,在生成的“Microsoft SQL Server 2000(Microsoft driver)”上右击,“连接设置”,填上用户名、密码,“确定”后就可连到你的数据库上进行对数据库的可视化 *** 作啦,试试吧。。。

还有NetBeans自带JavaDB数据库,你可在“服务”窗口中,右击javaDB,“新建数据库”


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10097267.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存