Exposed数据库连接以及用法
Exposed数据库连接以及用法
这是Exposed的官方文档,也可以直接去 官网查看
数据库连接
官方提供了几个连接数据源  我用的就是mysql连接
- 
PostgreSQL Database.connect("jdbc:postgresql://localhost:12346/test", driver = "org.postgresql.Driver", user = "root", password = "your_pwd") //Gradle compile("org.postgresql:postgresql:42.2.2")
- 
使用 pgjdbc-ng JDBC 驱动程序的 PostgreSQL Database .connect( " jdbc:pgsql://localhost:12346/test " , driver = " com.impossibl.postgres.jdbc.PGDriver " , user = " root " , password = " your_pwd " ) // Gradle compile( " com.impossibl.pgjdbc-ng ”、“ pgjdbc-ng ”、“ 0.8.3 ”)
- 
MySQL/MariaDB Database .connect( " jdbc:mysql://localhost:3306/test " , driver = " com.mysql.jdbc.Driver " , user = " root " , password = " your_pwd " ) // Gradle compile( " mysql: mysql-connector-java:5.1.48 " )
- 
带有最新 JDBC 驱动程序 + Hikari 池的 MySQL/MariaDB val config = HikariConfig().apply { jdbcUrl = "jdbc:mysql://localhost/dbname" driverClassName = "com.mysql.cj.jdbc.Driver" username = "username" password = "secret" maximumPoolSize = 10 } val dataSource = HikariDataSource(config) Database.connect(dataSource) // Gradle implementation "mysql:mysql-connector-java:8.0.19" implementation "com.zaxxer:HikariCP:3.4.2"
- 
Oracle Database.connect("jdbc:oracle:thin:@//localhost:1521/test", driver = "oracle.jdbc.OracleDriver", user = "root", password = "your_pwd") //Gradle // Oracle jdbc-driver should be obtained from Oracle maven repo: https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides
- 
SQLite // In file Database.connect("jdbc:sqlite:/data/data.db", "org.sqlite.JDBC") // In memory Database.connect("jdbc:sqlite:file:test?mode=memory&cache=shared", "org.sqlite.JDBC") // For both: set SQLite compatible isolation level, see // https://github.com/JetBrains/Exposed/wiki/FAQ TransactionManager.manager.defaultIsolationLevel = Connection.TRANSACTION_SERIALIZABLE // or Connection.TRANSACTION_READ_UNCOMMITTED //Gradle compile("org.xerial:sqlite-jdbc:3.30.1")
- 
H2 // Database in file, needs full path or relative path starting with ./ Database.connect("jdbc:h2:./myh2file", "org.h2.Driver") // In memory Database.connect("jdbc:h2:mem:regular", "org.h2.Driver") // In memory / keep alive between connections/transactions Database.connect("jdbc:h2:mem:regular;DB_CLOSE_DELAY=-1;", "org.h2.Driver") //Gradle compile("com.h2database:h2:1.4.199")
- 
SQL Server Database.connect("jdbc:sqlserver://localhost:32768;databaseName=test", "com.microsoft.sqlserver.jdbc.SQLServerDriver", user = "root", password = "your_pwd") //Gradle compile("com.microsoft.sqlserver:mssql-jdbc:6.4.0.jre7")
1. 创建表
 使用DSL进行数据库操作时需要创建两个数据库表Users和Classes:
	 注:这里的references是在后面使用连接的时候用的到

在创建表的时候可以对表名字进行自定义,如果创建的时候没有写数据库的名字,name在创建表的时候就会默认时对象类的类名

创建表的时候使用以下方法进行创建数据库的表
SchemaUtils.create (Users, ClassesTable)
2. 对表里面新增数据

3.查询表
将数据查询出来后用.map()方法放到里面List里面并返回

如果只想展示表中的几列的数据可以用.slice()方法对数据进行切面

4. 更改表
更改表语句后会返回一个Int型的参数 1或0 来表示更改是否成功

5. 删除表
删除表里面的数据的话就比较简单了,直接用deleteWhere()方法进行传入ID删除就行了

6.对数据进行连接查询
- 在进行内连接操作时,需要把对象类里面的外键加上references比如:val classId = (integer("classid") references ClassesTable.classNum).nullable()
- 然后再进行数据库操作的时候使用innerJoin()进行查询
注: 这种用法不需要设置外键

如果在对象类设置了外键的情况下,可以使用以下
join()方法,在里面有一个joinType他可以设置你的sql是什么连接,自我感觉这个比较好用,看个人喜好吧


 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号