scala lift环境搭建(4) 末蓝、 2022-06-13 10:08 171阅读 0赞 接下来我们更新一下boot.scala.在其中添加以下代码 val sitemap=List( Menu("Home")/"index", Menu("Auctions")/"auctions" ) LiftRules.setSiteMap(SiteMap(sitemap:_*)) 然后我们加入数据库连接所必要的代码 在Project.scala中,添加 val mapper = "net.liftweb" %% "lift-mapper" % liftVersion val textile = "net.liftweb" %% "lift-textile" % liftVersion % "compile->default" 然后对项目执行 reload update 耐心等待mapper包下载安装 在boot中添加以下引用 import net.liftweb.util._ import net.liftweb.util.Helpers._ 导入mapper需要的模块 import net.liftweb.mapper.{DB,Schemifier,DefaultConnectionIdentifier,StandardDBVendor,MapperRules} 引入数据库 // set the JNDI name that we'll be using DefaultConnectionIdentifier.jndiName = "jdbc/liftinaction" // handle JNDI not being avalible if (!DB.jndiJdbcConnAvailable_?){ //logger.warn("No JNDI configured - making a direct application connection") DB.defineConnectionManager(DefaultConnectionIdentifier, Database) // make sure cyote unloads database connections before shutting down LiftRules.unloadHooks.append(() => Database.closeAllConnections_!()) } // automatically create the tables Schemifier.schemify(true,Schemifier.infoF _,Supplier,Book,Author,AuthorBooks,Publisher) // setup the load pattern S.addAround(DB.buildLoanWrapper) 其中Supplier,Book,Author,AuthorBooks,Publisher是我们接下来要建立的实体对象 增加一个数据库声明,如果本地不存在,则会建立一个临时的h2数据库 object Database extends StandardDBVendor( Props.get("db.class").openOr("org.h2.Driver"), Props.get("db.url").openOr("jdbc:h2:database/temp"), Props.get("db.user"), Props.get("db.pass")) 使用 >lift create mapper XXX 来建立上述实体对象 class Book extends LongKeyedMapper[Book] with IdPK with CreatedUpdated with ManyToMany { def getSingleton = Book object title extends MappedString(this,255) object blurb extends MappedText(this) object publishedOn extends MappedDate(this) object publisher extends LongMappedMapper(this,Publisher) object authors extends MappedManyToMany( AuthorBooks,AuthorBooks.book,AuthorBooks.author,Author ) } object Book extends Book with LongKeyedMetaMapper[Book] { override def dbTableName="books" } class AuthorBooks extends LongKeyedMapper[AuthorBooks] with IdPK { def getSingleton = AuthorBooks object author extends LongMappedMapper(this,Author) object book extends LongMappedMapper(this,Book) } object AuthorBooks extends AuthorBooks with LongKeyedMetaMapper[AuthorBooks] class Publisher extends LongKeyedMapper[Publisher] with IdPK with CreatedUpdated with OneToMany[Long,Publisher]{ def getSingleton = Publisher object name extends MappedString(this,255) object description extends MappedText(this) object books extends MappedOneToMany(Book,Book.publisher) } object Publisher extends Publisher with LongKeyedMetaMapper[Publisher] { override def dbTableName = "publishers" } class Author extends LongKeyedMapper[Author] with IdPK with CreatedUpdated with ManyToMany { def getSingleton = Author object title extends MappedEnum(this,Titles) object firstName extends MappedString(this,255) object lastName extends MappedText(this) object email extends MappedEmail(this,150) object books extends MappedManyToMany( AuthorBooks,AuthorBooks.author, AuthorBooks.book,Book ) } object Author extends Author with LongKeyedMetaMapper[Author] { override def dbTableName="authors" } object Titles extends Enumeration{ val Mr,Mrs,Miss,Dr = Value }
还没有评论,来说两句吧...