mysql like jdbc_scala之使用scalikejdbc操作数据库

scalikejdbc的简介:

ScalikeJDBC是一款给Scala开发者使用的简介访问类库,它是基于SQL的,使用者只需要关注SQL逻辑的编写,所有的数据库操作都交给ScalikeJDBC。这个类库内置包含了JDBCAPI,并且给用户提供了简单易用并且非常灵活的API。并且,QueryDSl(通用查询查询框架)使你的代码类型安全,半年过去可重复使用。我们可以在生产环境大胆地使用这款DB访问类库。

笔者用的是MySQL数据库,所以此处以MySQL为例,以下是通过ScalikeJDBC来操作数据库的具体过程

【操作大纲】

1.拿到connection

2.拿到statement

3.拿到rs

4.结果获取出来

5.关掉rs,stmt和connection释放资源

【pom文件的配置】

org.scala-lang

scala-library

${scala.version}

org.scalikejdbc

scalikejdbc_2.11

${scalikejdbc.version}

org.scalikejdbc

scalikejdbc-config_2.11

${scalikejdbc.version}

mysql

mysql-connector-java

${mysql.jdbc.version}

2.11.8

3.3.2

5.1.38

【配置连接数据库的信息文件】

1.在src的main目录下配置一个resource文件夹,文件夹下再创建一个application.conf

bd6e006104ba8abaaa2dd7b358cc8522.png

【配置使文件能够被读取】

File=》Project Structure  ####若想使配置文件能够被加载,需将config设置为resource

a3c69b2448eb739b0f326361e2b9eaaf.png

【application.conf文件配置信息如下】

db.default.driver="com.mysql.jdbc.Driver"

db.default.url="jdbc:mysql://hadoop001/ruoze_d6?characterEncoding=utf-8"

db.default.user="root"

db.default.password="123456"

# Connection Pool settings

db.default.poolInitialSize=10db.default.poolMaxSize=20db.default.connectionTimeoutMillis=1000

【在ruoze_d6创建Employer表格】

create tableEmployer(

namevarchar(10),

agevarchar(4),

salaryvarchar(10)

);

【scala编程实现增删改查操作】

package com.wsk.bigdata.scala.scalikejdbc

import scalikejdbc._

import scalikejdbc.config._case class Employer(name: String, age: Int, salary: Long)

object JdbcTest {

def main(args: Array[String]): Unit ={

DBs.setupAll()

val config=DBs.config

val employers= List(Employer("zhangsan", 20, 18000), Employer("zhangliu", 50, 300000), Employer("lisi", 22, 22000))//批量插入insert(employers)

println("----------------insert执行完毕---------------")

//查询出结果

val results= select()for (employer

println(employer.name, employer.age, employer.salary)

}

println("----------------select执行完毕---------------")

//修改update(1000, "zhangsan")

println("----------------update执行完毕---------------")

//根据姓名删除

deleteByname("zhangliu")

println("----------------deleteByname执行完毕---------------")

//删除所有记录

deleteAll()

println("----------------deleteAll执行完毕---------------")

DBs.closeAll()

}

definsert(employers: List[Employer]): Unit ={

DB.localTx { implicit session=>

for (employer

SQL("insert into wsktest(name,age,salary) values(?,?,?)")

.bind(employer.name, employer.age, employer.salary)

.update().apply()

}

}

}

defselect(): List[Employer] ={

DB.readOnly { implicit session=>SQL("select * fromwsktest")

.map(rs=> Employer(rs.string("name"), rs.int("age"), rs.long("salary")))

.list().apply()

}

}

defupdate(age: Int, name: String) {

DB.autoCommit { implicit session=>SQL("update wsktest set age = ? where name = ?").bind(age, name).update().apply()

}

}

def deleteByname(name: String): Unit={

DB.autoCommit { implicit session=>SQL("delete from wsktest where name = ?").bind(name).update().apply()

}

}

def deleteAll(): Unit={

DB.autoCommit { implicit session=>SQL("delete from wsktest ").update().apply()

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值